mirror of https://gitee.com/openkylin/libvirt.git
virsh: free the caps list properly if one of them is invalid
VIR_FREE(caps) is not enough to free an array allocated by vshStringToArray. ==17== 4 bytes in 1 blocks are definitely lost in loss record 4 of 728 ==17== by 0x4EFFC44: virStrdup (virstring.c:554) ==17== by 0x128B10: _vshStrdup (virsh.c:125) ==17== by 0x129164: vshStringToArray (virsh.c:218) ==17== by 0x157BB3: cmdNodeListDevices (virsh-nodedev.c:409) https://bugzilla.redhat.com/show_bug.cgi?id=1001536
This commit is contained in:
parent
785ff34bf8
commit
14d5328681
|
@ -413,8 +413,8 @@ cmdNodeListDevices(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
|
||||||
for (i = 0; i < ncaps; i++) {
|
for (i = 0; i < ncaps; i++) {
|
||||||
if ((cap_type = virNodeDevCapTypeFromString(caps[i])) < 0) {
|
if ((cap_type = virNodeDevCapTypeFromString(caps[i])) < 0) {
|
||||||
vshError(ctl, "%s", _("Invalid capability type"));
|
vshError(ctl, "%s", _("Invalid capability type"));
|
||||||
VIR_FREE(caps);
|
ret = false;
|
||||||
return false;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (cap_type) {
|
switch (cap_type) {
|
||||||
|
|
Loading…
Reference in New Issue