Diff between 25bc7dc9d1894ed29ee242820a27562494884a79 and ba266f7efdfb4c90e65f59a2da3d626ae26ab945

Changed Files

File Additions Deletions Status
src/adapter.c +8 -1 modified

Full Patch

diff --git a/src/adapter.c b/src/adapter.c
index dffb8bc..56d0c6e 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -1497,6 +1497,7 @@ static void discovery_cleanup(struct btd_adapter *adapter, int timeout)
 static void discovery_free(void *user_data)
 {
 	struct discovery_client *client = user_data;
+	struct btd_adapter *adapter = client->adapter;
 
 	DBG("%p", client);
 
@@ -1508,8 +1509,14 @@ static void discovery_free(void *user_data)
 		client->discovery_filter = NULL;
 	}
 
-	if (client->msg)
+	if (client->msg) {
+		if (client == adapter->client) {
+			g_dbus_send_message(dbus_conn,
+						btd_error_busy(client->msg));
+			adapter->client = NULL;
+		}
 		dbus_message_unref(client->msg);
+	}
 
 	g_free(client->owner);
 	g_free(client);