On 05/11/2018 02:33 AM, Filip Alac wrote:
Parser assumed extra was always present when root was specified.
Fixed by handling root and extra separately.
Contributions to libvirt must now assert they are in compliance with the DCO.
See
https://libvirt.org/hacking.html
---
src/xenconfig/xen_xm.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/xenconfig/xen_xm.c b/src/xenconfig/xen_xm.c
index 8ef68bbc..4becb40b 100644
--- a/src/xenconfig/xen_xm.c
+++ b/src/xenconfig/xen_xm.c
@@ -91,10 +91,13 @@ xenParseXMOS(virConfPtr conf, virDomainDefPtr def)
if (xenConfigGetString(conf, "root", &root, NULL) < 0)
return -1;
- if (root) {
+ if (root && extra) {
if (virAsprintf(&def->os.cmdline, "root=%s %s", root,
extra) < 0)
return -1;
- } else {
+ } else if (root) {
+ if (virAsprintf(&def->os.cmdline, "root=%s", root) < 0)
+ return -1;
+ } else if (extra) {
if (VIR_STRDUP(def->os.cmdline, extra) < 0)
return -1;
}
Although at first glance the logic seems a bit clumsy, my alternative attempts
were no better. Also, similar logic exits in the xl config parser - see
xenParseCmdline in xen_xl.c.
ACK to the change, but we'll need a 'Signed-off-by:' to push.
Regards,
Jim