From: Martin Kletzander Date: Tue, 11 Oct 2016 11:30:11 +0000 (+0200) Subject: Reference state when using it as opaque X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=3d279e23e7fb353720e1866bd3b2160f104817b4;p=libvirt.git Reference state when using it as opaque There should be one more reference because it is being kept in the list of callbacks as an opaque. We also unref it properly using virObjectFreeCallback. Signed-off-by: Martin Kletzander --- diff --git a/src/conf/object_event.c b/src/conf/object_event.c index b859835b47..1ef8b58d10 100644 --- a/src/conf/object_event.c +++ b/src/conf/object_event.c @@ -870,12 +870,16 @@ virObjectEventStateRegisterID(virConnectPtr conn, (state->timer = virEventAddTimeout(-1, virObjectEventTimer, state, - NULL)) < 0) { + virObjectFreeCallback)) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("could not initialize domain event timer")); goto cleanup; } + /* event loop has one reference, but we need one more for the + * timer's opaque argument */ + virObjectRef(state); + ret = virObjectEventCallbackListAddID(conn, state->callbacks, key, filter, filter_opaque, klass, eventID,