summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/adapter.c3
-rw-r--r--src/agent.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/src/adapter.c b/src/adapter.c
index a22112c8..98dc8ce2 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -2747,6 +2747,9 @@ static void adapter_free(gpointer user_data)
{
struct adapter *adapter = user_data;
+ agent_destroy(adapter->agent, FALSE);
+ adapter->agent = NULL;
+
g_free(adapter->path);
g_free(adapter);
diff --git a/src/agent.c b/src/agent.c
index 9870cb10..c35b2500 100644
--- a/src/agent.c
+++ b/src/agent.c
@@ -217,6 +217,9 @@ struct agent *agent_create(struct adapter *adapter, const char *name,
int agent_destroy(struct agent *agent, gboolean exited)
{
+ if (!agent)
+ return 0;
+
agent->exited = exited;
agent_free(agent);
return 0;