core/advertising: Fix crash when client is added after unregistration
authorSimon Mikuda <simon.mikuda@streamunlimited.com>
Tue, 12 Nov 2019 13:56:35 +0000 (14:56 +0100)
committerAyush Garg <ayush.garg@samsung.com>
Mon, 12 Apr 2021 09:00:47 +0000 (14:30 +0530)
After "register_advertisement()" callback "client_proxy_added()" was yet
called but it was actually called after: "unregister_advertisement()" which
caused segmentation fault because client was removed twice.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
src/advertising.c

index f39be7f..5e9fd3e 100644 (file)
@@ -185,6 +185,8 @@ static void client_remove(void *data)
        struct btd_adv_client *client = data;
        struct mgmt_cp_remove_advertising cp;
 
+       g_dbus_client_set_proxy_handlers(client->client, NULL, NULL, NULL,
+                                                                       client);
        g_dbus_client_set_disconnect_watch(client->client, NULL, NULL);
 
        cp.instance = client->instance;