diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index 9980b38..b9e3f4d 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -697,9 +697,10 @@ libxlVmReap(libxlDriverPrivatePtr driver, * Handle previously registered event notification from libxenlight */ static void -libxlEventHandler(void *data ATTRIBUTE_UNUSED, const libxl_event *event) +libxlEventHandler(void *data, const libxl_event *event) { libxlDriverPrivatePtr driver = libxl_driver; + libxlDomainObjPrivatePtr priv = ((virDomainObjPtr)data)->privateData; virDomainObjPtr vm = NULL; virDomainEventPtr dom_event = NULL; libxl_shutdown_reason xl_reason = event->u.domain_shutdown.shutdown_reason; @@ -756,6 +757,7 @@ cleanup: libxlDomainEventQueue(driver, dom_event); libxlDriverUnlock(driver); } + libxl_event_free(priv->ctx, (libxl_event *)event); } static const struct libxl_event_hooks ev_hooks = {