diff options
-rw-r--r-- | src/adapter.c | 3 | ||||
-rw-r--r-- | src/agent.c | 3 |
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; |