gresolv: Remove lookup from correct queue
authorJukka Rissanen <jukka.rissanen@linux.intel.com>
Thu, 11 Oct 2012 10:45:41 +0000 (13:45 +0300)
committerPatrik Flykt <patrik.flykt@linux.intel.com>
Fri, 12 Oct 2012 10:14:11 +0000 (13:14 +0300)
The lookup must be removed from lookup queue and not from query
queue when cancelling the lookup. Otherwise it is possible that
we might access an already removed lookup that is still found in
lookup queue.

Fixes BMC#25728

gweb/gresolv.c

index 79abc9b709585c2cc76bb9494c46c135b96d8c30..77c1afb80fd406be047fb84a619cc999a3d229f2 100644 (file)
@@ -1043,8 +1043,8 @@ gboolean g_resolv_cancel_lookup(GResolv *resolv, guint id)
        if (list == NULL)
                return FALSE;
 
+       g_queue_remove(resolv->lookup_queue, list->data);
        destroy_lookup(list->data);
-       g_queue_remove(resolv->query_queue, list->data);
 
        return TRUE;
 }