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 <soren@linux2go.dk>
This commit is contained in:
Soren Hansen 2010-08-12 15:42:34 +02:00 committed by Eric Blake
parent 753d76e0cd
commit 3ad8cbd3be

View File

@ -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);