mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-21 20:15:17 +00:00
virsh-domain: Fix memleak in cmdUndefine with storage
When undefining a domain with storage when the volume isn't managed by libvirt the name and path strings weren't freed properly. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=996050
This commit is contained in:
parent
9ceaaa08e9
commit
5075248ac9
@ -3052,6 +3052,8 @@ cmdUndefine(vshControl *ctl, const vshCmd *cmd)
|
||||
|
||||
for (i = 0; i < nvolumes; i++) {
|
||||
ctxt->node = vol_nodes[i];
|
||||
VIR_FREE(source);
|
||||
VIR_FREE(target);
|
||||
|
||||
/* get volume source and target paths */
|
||||
if (!(target = virXPathString("string(./target/@dev)", ctxt)))
|
||||
@ -3094,6 +3096,8 @@ cmdUndefine(vshControl *ctl, const vshCmd *cmd)
|
||||
}
|
||||
vlist[nvols].source = source;
|
||||
vlist[nvols].target = target;
|
||||
source = NULL;
|
||||
target = NULL;
|
||||
nvols++;
|
||||
}
|
||||
|
||||
@ -3193,6 +3197,8 @@ out:
|
||||
}
|
||||
|
||||
cleanup:
|
||||
VIR_FREE(source);
|
||||
VIR_FREE(target);
|
||||
for (i = 0; i < nvols; i++) {
|
||||
VIR_FREE(vlist[i].source);
|
||||
VIR_FREE(vlist[i].target);
|
||||
|
Loading…
x
Reference in New Issue
Block a user