mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-24 06:35:24 +00:00
qemu: avoid double free of qemu help output
If yajl was not compiled in, we end up freeing an incoming
parameter, which leads to a bogus free later on. Regression
introduced in commit 6e769eb
.
* src/qemu/qemu_capabilities.c (qemuCapsParseHelpStr): Avoid alloc
on failure path, which in turn fixes bogus free.
Reported by Cole Robinson.
This commit is contained in:
parent
93f93f5161
commit
ab6f1c9814
@ -1330,16 +1330,14 @@ int qemuCapsParseHelpStr(const char *qemu,
|
||||
|
||||
fail:
|
||||
p = strchr(help, '\n');
|
||||
if (p)
|
||||
p = strndup(help, p - help);
|
||||
if (!p)
|
||||
p = strchr(help, '\0');
|
||||
|
||||
qemuReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("cannot parse %s version number in '%s'"),
|
||||
qemu, p ? p : help);
|
||||
_("cannot parse %s version number in '%.*s'"),
|
||||
qemu, (int) (p - help), help);
|
||||
|
||||
cleanup:
|
||||
VIR_FREE(p);
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user