Imported Upstream version 1.29
[platform/upstream/connman.git] / src / agent.c
index a340026..bdeb0e7 100644 (file)
@@ -502,7 +502,7 @@ void connman_agent_cancel(void *user_context)
 
        g_hash_table_iter_init(&iter, agent_hash);
        while (g_hash_table_iter_next(&iter, &key, &value)) {
-               GList *list;
+               GList *list, *next;
                struct connman_agent *agent = value;
 
                /*
@@ -512,6 +512,8 @@ void connman_agent_cancel(void *user_context)
                while (list) {
                        struct connman_agent_request *request = list->data;
 
+                       next = list->next;
+
                        if (request && request->user_context &&
                                                request->user_context ==
                                                                user_context) {
@@ -521,10 +523,11 @@ void connman_agent_cancel(void *user_context)
 
                                agent_request_free(request);
 
-                               agent->queue = list->next;
-                               list = g_list_delete_link(list, list);
-                       } else
-                               list = list->next;
+                               agent->queue = g_list_delete_link(agent->queue,
+                                                                       list);
+                       }
+
+                       list = next;
                }
 
                /*