diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 3b44f0c274..2f8e5d2580 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -1732,12 +1732,14 @@ virDomainObjPtr virDomainObjNew(virCapsPtr caps) return NULL; } - if (caps->privateDataAllocFunc && - !(domain->privateData = (caps->privateDataAllocFunc)())) { - virReportOOMError(); - goto error; + if (caps && + caps->privateDataAllocFunc) { + if (!(domain->privateData = (caps->privateDataAllocFunc)())) { + virReportOOMError(); + goto error; + } + domain->privateDataFreeFunc = caps->privateDataFreeFunc; } - domain->privateDataFreeFunc = caps->privateDataFreeFunc; if (!(domain->snapshots = virDomainSnapshotObjListNew())) goto error;