diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index a8b517382a..3883d04c42 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -1638,7 +1638,7 @@ virDomainDiskSetFormat(virDomainDiskDefPtr def, int format) } -static virDomainControllerDefPtr +virDomainControllerDefPtr virDomainControllerDefNew(virDomainControllerType type) { virDomainControllerDefPtr def; diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index c2fa3b8100..fb872d4bb7 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -2563,6 +2563,8 @@ virDomainDiskDefPtr virDomainDiskFindByBusAndDst(virDomainDefPtr def, int bus, char *dst); void virDomainControllerDefFree(virDomainControllerDefPtr def); +virDomainControllerDefPtr +virDomainControllerDefNew(virDomainControllerType type); void virDomainFSDefFree(virDomainFSDefPtr def); void virDomainActualNetDefFree(virDomainActualNetDefPtr def); void virDomainNetDefFree(virDomainNetDefPtr def); diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index a057a1e830..48b28c486f 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -186,6 +186,7 @@ virDomainClockOffsetTypeToString; virDomainConfigFile; virDomainControllerAliasFind; virDomainControllerDefFree; +virDomainControllerDefNew; virDomainControllerFind; virDomainControllerFindByType; virDomainControllerInsert; diff --git a/src/qemu/qemu_parse_command.c b/src/qemu/qemu_parse_command.c index 577651bbdb..7ce90f926d 100644 --- a/src/qemu/qemu_parse_command.c +++ b/src/qemu/qemu_parse_command.c @@ -2351,13 +2351,11 @@ qemuParseCommandLine(virCapsPtr caps, /* ignore, generted on the fly */ } else if (STREQ(arg, "-usb")) { virDomainControllerDefPtr ctldef; - if (VIR_ALLOC(ctldef) < 0) + ctldef = virDomainControllerDefNew(VIR_DOMAIN_CONTROLLER_TYPE_USB); + if (!ctldef) goto error; - ctldef->type = VIR_DOMAIN_CONTROLLER_TYPE_USB; - ctldef->idx = 0; - ctldef->model = -1; if (virDomainControllerInsert(def, ctldef) < 0) { - VIR_FREE(ctldef); + virDomainControllerDefFree(ctldef); goto error; } } else if (STREQ(arg, "-pidfile")) {