domain_conf: fix NULL dereference on error in virDomainObjCopyPersistentDef

The issue was introduced together with the function itself by commit
<da1eba6bc8f58bfce34136710d1979a3a44adb17>.  Calling
`virDomainObjGetPersistentDef` may return NULL which is later passed
to `virDomainDefFormat` where the `def` attribute is marked as NONNULL
and later in `virDomainDefFormatInternalSetRootName` it is actually
defererenced without any other check.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
This commit is contained in:
Pavel Hrdina 2020-03-11 13:25:59 +01:00
parent ba6385c952
commit b96174d9f2

View File

@ -30933,6 +30933,12 @@ virDomainObjCopyPersistentDef(virDomainObjPtr dom,
virDomainDefPtr cur;
cur = virDomainObjGetPersistentDef(xmlopt, dom, parseOpaque);
if (!cur) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("failed to get persistent definition object"));
return NULL;
}
return virDomainDefCopy(cur, xmlopt, parseOpaque, false);
}