kqueue: fix a potential deadlock
authorAntoine Jacoutot <ajacoutot@gnome.org>
Thu, 26 Dec 2013 10:03:45 +0000 (11:03 +0100)
committerAntoine Jacoutot <ajacoutot@gnome.org>
Thu, 26 Dec 2013 18:57:44 +0000 (19:57 +0100)
In case an object is already monitored, we lock then return without
unlocking it which can then result in a self deadlock. So properly
unlock before returning.

https://bugzilla.gnome.org/show_bug.cgi?id=721074

gio/kqueue/kqueue-missing.c

index 9ea3c3e..9decdc9 100644 (file)
@@ -68,6 +68,7 @@ _km_add_missing (kqueue_sub *sub)
   if (g_slist_find (missing_subs_list, sub))
     {
       KM_W ("asked to add %s to missing list but it's already on the list!\n", sub->filename);
+      G_UNLOCK (missing_lock);
       return;
     }