# HG changeset patch
# User Ian Campbell <ijc@hellion.org.uk>
# Date 1350402554 -3600
# Node ID b180301556af546c4ef054d36015391284622e9e
# Parent fd0989ae4407fe630b93e9dd8ec15eea07c7825b
xl: Do not leak events when a domain exits.
The goto in both of these places misses the event free which would
normally clean up.
==8655== 80 bytes in 1 blocks are definitely lost in loss record 1 of 1
==8655== at 0x4024370: calloc (vg_replace_malloc.c:593)
==8655== by 0x406EAAE: libxl__zalloc (libxl_internal.c:83)
==8655== by 0x4078173: libxl__event_new (libxl_event.c:1167)
==8655== by 0x4056373: domain_death_occurred (libxl.c:958)
==8655== by 0x4058D06: domain_death_xswatch_callback (libxl.c:1038)
==8655== by 0x4078EB5: watchfd_callback (libxl_event.c:458)
==8655== by 0x407839E: afterpoll_internal (libxl_event.c:949)
==8655== by 0x4079142: eventloop_iteration (libxl_event.c:1371)
==8655== by 0x40799BB: libxl_event_wait (libxl_event.c:1396)
==8655== by 0x805CC67: create_domain (xl_cmdimpl.c:1698)
==8655== by 0x805E001: main_create (xl_cmdimpl.c:3986)
==8655== by 0x804D43D: main (xl.c:285)
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
diff -r fd0989ae4407 -r b180301556af tools/libxl/xl_cmdimpl.c
--- a/tools/libxl/xl_cmdimpl.c Tue Oct 16 16:46:18 2012 +0100
+++ b/tools/libxl/xl_cmdimpl.c Tue Oct 16 16:49:14 2012 +0100
@@ -2118,6 +2118,7 @@ start:
case 0:
LOG("Done. Exiting now");
+ libxl_event_free(ctx, event);
ret = 0;
goto out;
@@ -2127,6 +2128,7 @@ start:
case LIBXL_EVENT_TYPE_DOMAIN_DEATH:
LOG("Domain %d has been destroyed.", domid);
+ libxl_event_free(ctx, event);
ret = 0;
goto out;