When we disconnect the a2dp Headset by immediate power off and soon if we
initiate a disconnection from our side, a crash is occurring. This is
happening because of the disconnect_timeout coming after freeing the session.
---
audio/avdtp.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/audio/avdtp.c b/audio/avdtp.c
index 76526b6..d8d9d7e 100644
--- a/audio/avdtp.c
+++ b/audio/avdtp.c
@@ -690,7 +690,7 @@ static void set_disconnect_timer(struct avdtp *session)
remove_disconnect_timer(session);
if (session->device_disconnect) {
- g_idle_add(disconnect_timeout, session);
+ session->dc_timer = g_idle_add(disconnect_timeout, session);
return;
}
--
1.7.4.1
Hi Syam,
On Thu, Aug 11, 2011, Syam Sidhardhan wrote:
> When we disconnect the a2dp Headset by immediate power off and soon if we
> initiate a disconnection from our side, a crash is occurring. This is
> happening because of the disconnect_timeout coming after freeing the session.
> ---
> audio/avdtp.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
Applied (after reformatting the commit message to max 74 characters;
please do this yourself in the future). Again, I left the second patch
out since I'm doubtful it helps more than it hurts readability.
Johan
Hi,
On Wed, Aug 10, 2011 at 9:44 PM, Syam Sidhardhan <[email protected]> wrote:
> When we disconnect the a2dp Headset by immediate power off and soon if we
> initiate a disconnection from our side, a crash is occurring. This is
> happening because of the disconnect_timeout coming after freeing the session.
> ---
> ?audio/avdtp.c | ? ?2 +-
> ?1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/audio/avdtp.c b/audio/avdtp.c
> index 76526b6..d8d9d7e 100644
> --- a/audio/avdtp.c
> +++ b/audio/avdtp.c
> @@ -690,7 +690,7 @@ static void set_disconnect_timer(struct avdtp *session)
> ? ? ? ? ? ? ? ?remove_disconnect_timer(session);
>
> ? ? ? ?if (session->device_disconnect) {
> - ? ? ? ? ? ? ? g_idle_add(disconnect_timeout, session);
> + ? ? ? ? ? ? ? session->dc_timer = g_idle_add(disconnect_timeout, session);
> ? ? ? ? ? ? ? ?return;
> ? ? ? ?}
>
Nice catch, ack.
--
Luiz Augusto von Dentz
Local copy of the pointer to list is not required, because these
functions already has a copy, through the arguments.
---
gdbus/object.c | 6 ++----
1 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/gdbus/object.c b/gdbus/object.c
index 8bc12f5..dafb6b5 100644
--- a/gdbus/object.c
+++ b/gdbus/object.c
@@ -399,15 +399,13 @@ static void generic_unregister(DBusConnection *connection, void *user_data)
g_free(data);
}
-static struct interface_data *find_interface(GSList *interfaces,
+static struct interface_data *find_interface(GSList *list,
const char *name)
{
- GSList *list;
-
if (name == NULL)
return NULL;
- for (list = interfaces; list; list = list->next) {
+ for (; list; list = list->next) {
struct interface_data *iface = list->data;
if (!strcmp(name, iface->name))
return iface;
--
1.7.4.1