From: Soren Hansen Date: Thu, 12 Aug 2010 13:42:34 +0000 (+0200) Subject: Make sure all command line arguments get passed to UML X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=3ad8cbd3bef617bae42426c6697d21e930cb9bb1;p=libvirt.git Make sure all command line arguments get passed to UML If umlBuildCommandLineChr fails (e.g. due to an unsupported chardev type), it returns NULL. umlBuildCommandLine does not check for this and sets this as an argument on the comand line, effectively ending the argument list. This patch checks for this case and sets the chardev to "none". Signed-off-by: Soren Hansen --- diff --git a/src/uml/uml_conf.c b/src/uml/uml_conf.c index bc8cbceeb6..0cb5ba08fb 100644 --- a/src/uml/uml_conf.c +++ b/src/uml/uml_conf.c @@ -513,10 +513,10 @@ int umlBuildCommandLine(virConnectPtr conn, } for (i = 0 ; i < UML_MAX_CHAR_DEVICE ; i++) { - char *ret; + char *ret = NULL; if (i == 0 && vm->def->console) ret = umlBuildCommandLineChr(vm->def->console, "con"); - else + if (!ret) if (virAsprintf(&ret, "con%d=none", i) < 0) goto no_memory; ADD_ARG(ret); @@ -524,13 +524,13 @@ int umlBuildCommandLine(virConnectPtr conn, for (i = 0 ; i < UML_MAX_CHAR_DEVICE ; i++) { virDomainChrDefPtr chr = NULL; - char *ret; + char *ret = NULL; for (j = 0 ; j < vm->def->nserials ; j++) if (vm->def->serials[j]->target.port == i) chr = vm->def->serials[j]; if (chr) ret = umlBuildCommandLineChr(chr, "ssl"); - else + if (!ret) if (virAsprintf(&ret, "ssl%d=none", i) < 0) goto no_memory; ADD_ARG(ret);