Upstream: gresolv: Remove lookup from correct queue
authorJukka Rissanen <jukka.rissanen@linux.intel.com>
Thu, 11 Oct 2012 10:45:41 +0000 (13:45 +0300)
committerJaehyun Kim <jeik01.kim@samsung.com>
Sat, 6 Apr 2013 13:28:25 +0000 (22:28 +0900)
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 3a60c14..7f5f2b5 100644 (file)
@@ -1056,8 +1056,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;
 }