If the monitor doesn't hold a reference to the domain object the object may be destroyed before the monitor actually stops. --- v2: Moved vm ref upper, removed vm unref in error case. src/lxc/lxc_monitor.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lxc/lxc_monitor.c b/src/lxc/lxc_monitor.c index d828d528a..9cab6c203 100644 --- a/src/lxc/lxc_monitor.c +++ b/src/lxc/lxc_monitor.c @@ -175,7 +175,7 @@ virLXCMonitorPtr virLXCMonitorNew(virDomainObjPtr vm, mon->program) < 0) goto error; - mon->vm = vm; + mon->vm = virObjectRef(vm); memcpy(&mon->cb, cb, sizeof(mon->cb)); virObjectRef(mon); @@ -201,6 +201,7 @@ static void virLXCMonitorDispose(void *opaque) if (mon->cb.destroy) (mon->cb.destroy)(mon, mon->vm); virObjectUnref(mon->program); + virObjectUnref(mon->vm); } -- 2.11.0 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list