[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] libxl: Do not use-after-free on ao progress reporting


  • To: xen-changelog@xxxxxxxxxxxxxxxxxxx
  • From: Xen patchbot-unstable <patchbot@xxxxxxx>
  • Date: Fri, 18 May 2012 17:11:22 +0000
  • Delivery-date: Fri, 18 May 2012 17:11:26 +0000
  • List-id: "Change log for Mercurial \(receive only\)" <xen-changelog.lists.xen.org>

# HG changeset patch
# User Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
# Date 1337262341 -3600
# Node ID 753d2b91a7885eb81093acec0e7ce4eaec094b8d
# Parent  48598870f55806b7c3fba8dce6882b59e9259a27
libxl: Do not use-after-free on ao progress reporting

We need to call libxl__free_all after egc_run_callbacks since some of
the callbacks might be ao progress reports allocated from the egc's
gc.

Fixes a segfault in egc_run_callbacks.

Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
Committed-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
---


diff -r 48598870f558 -r 753d2b91a788 tools/libxl/libxl_event.c
--- a/tools/libxl/libxl_event.c Thu May 17 14:45:40 2012 +0100
+++ b/tools/libxl/libxl_event.c Thu May 17 14:45:41 2012 +0100
@@ -988,9 +988,9 @@ static void egc_run_callbacks(libxl__egc
 void libxl__egc_cleanup(libxl__egc *egc)
 {
     EGC_GC;
+    egc_run_callbacks(egc);
+
     libxl__free_all(gc);
-
-    egc_run_callbacks(egc);
 }
 
 /*

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.