mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-23 21:34:54 +03:00
qemuhotplugtest: Resolve some memleaks
If testQemuHotplugAttach succeeds, the vm->def steals the dev pointer. However, not the envelope, which needs to be freed. In addition, driver.config is allocated, but never freed.
This commit is contained in:
parent
b7658f6234
commit
166db595c3
@ -89,6 +89,10 @@ testQemuHotplugAttach(virDomainObjPtr vm,
|
||||
switch (dev->type) {
|
||||
case VIR_DOMAIN_DEVICE_CHR:
|
||||
ret = qemuDomainAttachChrDevice(&driver, vm, dev->data.chr);
|
||||
if (!ret) {
|
||||
/* vm->def stolen dev->data.chr so we ought to avoid freeing it */
|
||||
dev->data.chr = NULL;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (virTestGetVerbose())
|
||||
@ -214,11 +218,6 @@ testQemuHotplug(const void *data)
|
||||
switch (test->action) {
|
||||
case ATTACH:
|
||||
ret = testQemuHotplugAttach(vm, dev);
|
||||
if (!ret) {
|
||||
/* avoid @dev double free on success,
|
||||
* as @dev is part of vm->def now */
|
||||
dev = NULL;
|
||||
}
|
||||
break;
|
||||
|
||||
case DETACH:
|
||||
@ -323,6 +322,7 @@ mymain(void)
|
||||
|
||||
virObjectUnref(driver.caps);
|
||||
virObjectUnref(driver.xmlopt);
|
||||
virObjectUnref(driver.config);
|
||||
return (ret == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user