Re: [PATCH] Emit missing signal when data channel is reconnected.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Fri, Mar 25, 2011, Santiago Carot wrote:
> >> diff --git a/health/hdp.c b/health/hdp.c
> >> index 3c2dce1..b06fe17 100644
> >> --- a/health/hdp.c
> >> +++ b/health/hdp.c
> >> @@ -510,14 +510,23 @@ static void hdp_mdl_reconn_cb(struct mcap_mdl *mdl, GError *err, gpointer data)
> >>       }
> >>
> >>       fd = mcap_mdl_get_fd(dc_data->hdp_chann->mdl);
> >> -     if (fd < 0)
> >> +     if (fd < 0) {
> >>               reply = g_dbus_create_error(dc_data->msg,
> >>                                               ERROR_INTERFACE ".HealthError",
> >>                                               "Cannot get file descriptor");
> >> +             g_dbus_send_message(dc_data->conn, reply);
> >> +             return;
> >> +     }
> >>
> 
> This is not a memory leak fix, if fd is less than 0, then reconnection
> was not succesfully and then we reply with an error response to the
> application but we dont not emit the CahnnelConnected signal. (return
> statement).

The code (before your patch) was assigning a value to reply and then
right afterwards assigning another value to it without freeing it in
between:

> >>       reply = g_dbus_create_reply(dc_data->msg, DBUS_TYPE_UNIX_FD, &fd,
> >>                                                       DBUS_TYPE_INVALID);

How is that not a memory leak? (not to mention that g_dbus_send_message
isn't called to the error message that you create). Looks to me like
there was an "else" statement missing or something similar.

Johan
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux