mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-09 14:35:25 +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
(cherry picked from commit 5075248ac9
)
This commit is contained in:
parent
b9bc69ba28
commit
522656bea1
@ -3048,6 +3048,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)))
|
||||
@ -3090,6 +3092,8 @@ cmdUndefine(vshControl *ctl, const vshCmd *cmd)
|
||||
}
|
||||
vlist[nvols].source = source;
|
||||
vlist[nvols].target = target;
|
||||
source = NULL;
|
||||
target = NULL;
|
||||
nvols++;
|
||||
}
|
||||
|
||||
@ -3189,6 +3193,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…
Reference in New Issue
Block a user