diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index ce19be78e9259b23e3c701c2c0beccd22125b8b5..b8150468f35081d62eed8ef04484851f491b36c9 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -293,6 +293,7 @@ static void qemuDomainSnapshotLoad(void *payload, int ret; char *fullpath; virDomainSnapshotDefPtr def = NULL; + virDomainSnapshotObjPtr snap = NULL; char ebuf[1024]; virDomainObjLock(vm); @@ -344,7 +345,10 @@ static void qemuDomainSnapshotLoad(void *payload, continue; } - virDomainSnapshotAssignDef(&vm->snapshots, def); + snap = virDomainSnapshotAssignDef(&vm->snapshots, def); + if (snap == NULL) { + virDomainSnapshotDefFree(def); + } VIR_FREE(fullpath); VIR_FREE(xmlStr);