From 3d279e23e7fb353720e1866bd3b2160f104817b4 Mon Sep 17 00:00:00 2001 From: Martin Kletzander Date: Tue, 11 Oct 2016 13:30:11 +0200 Subject: [PATCH] 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 --- src/conf/object_event.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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, -- GitLab