]> xenbits.xensource.com Git - xen.git/commitdiff
libxl: remove poller from list in libxl__poller_get
authorRoger Pau Monne <roger.pau@citrix.com>
Wed, 11 Apr 2012 13:14:10 +0000 (14:14 +0100)
committerRoger Pau Monne <roger.pau@citrix.com>
Wed, 11 Apr 2012 13:14:10 +0000 (14:14 +0100)
Remove poller from the list once it has been requested.
Fixes a double-free bug.

Signed-off-by: Roger Pau Monne <roger.pau@citrix.com>
Acked-by: Ian Jackson <ian.jackson@citrix.com>
Committed-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
tools/libxl/libxl_event.c

index 5ac6334c1a13e84eb4db2f2331b8220b42e3ff3a..9cb172aef2d7eb12bce35ff0f6cc0e81ee73c18d 100644 (file)
@@ -1010,8 +1010,10 @@ libxl__poller *libxl__poller_get(libxl_ctx *ctx)
     int rc;
 
     libxl__poller *p = LIBXL_LIST_FIRST(&ctx->pollers_idle);
-    if (p)
+    if (p) {
+        LIBXL_LIST_REMOVE(p, entry);
         return p;
+    }
 
     p = malloc(sizeof(*p));
     if (!p) {