From e23dd0d9f0e63cf4e879df591f9a71c37df5300b Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Fri, 12 Jul 2013 10:43:25 +0300 Subject: [PATCH] core: Clear device->attrib pointer before calling g_attrib_cancel_all The g_attrib_cancel_all function may call functions such as find_included_cb that should at this point no longer have access to the GAttrib instance and try to do operations with it. Therefore it is safest to ensure that device->attrib is no longer available in these functions. --- src/device.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/device.c b/src/device.c index 842b61bb8..176ccac35 100644 --- a/src/device.c +++ b/src/device.c @@ -463,9 +463,10 @@ static void attio_cleanup(struct btd_device *device) } if (device->attrib) { - g_attrib_cancel_all(device->attrib); - g_attrib_unref(device->attrib); + GAttrib *attrib = device->attrib; device->attrib = NULL; + g_attrib_cancel_all(attrib); + g_attrib_unref(attrib); } } -- 2.47.3