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: Simon Mikuda <simon.mikuda@xxxxxxxxxxxxxxxxxxx> --- src/advertising.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/advertising.c b/src/advertising.c index f53c14c..45ff19f 100644 --- a/src/advertising.c +++ b/src/advertising.c @@ -190,6 +190,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; -- 2.7.4