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.
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;
}