[Lguest] [PATCH] Do not append space to guests kernel command line

Paul Bolle pebolle at tiscali.nl
Tue Mar 11 04:09:42 EST 2008


Launching a kernel with an init=[...] argument proved to be difficult
(when using a Fedora initramfs). This patch fixed it for me (and should
have no side effects).


Paul Bolle
--- 
commit 78371ce1f0f59743044df8116aaff0ad014e80c0
Author: Paul Bolle <pebolle at tiscali.nl>
Date:   Mon Mar 10 16:39:03 2008 +0100

    Do not append space to guests kernel command line
    
    The lguest launcher appends a space to the kernel command line (if kernel
    arguments are specified on its command line). This space is unneeded. More
    importantly, this appended space will make Red Hat's nash script interpreter
    (used in a Fedora style initramfs) add an empty argument to init's command
    line. This empty argument will make kernel arguments like "init=/bin/bash"
    fail (because the shell will try to execute a script with an empty name).
    This could be considered a bug in nash, but is easily fixed in the lguest
    launcher too.
    
    Signed-off-by: Paul Bolle <pebolle at tiscali.nl>

diff --git a/Documentation/lguest/lguest.c b/Documentation/lguest/lguest.c
index 0f23d67..bec5a32 100644
--- a/Documentation/lguest/lguest.c
+++ b/Documentation/lguest/lguest.c
@@ -486,9 +486,12 @@ static void concat(char *dst, char *args[])
 	unsigned int i, len = 0;
 
 	for (i = 0; args[i]; i++) {
+		if (i) {
+			strcat(dst+len, " ");
+			len++;
+		}
 		strcpy(dst+len, args[i]);
-		strcat(dst+len, " ");
-		len += strlen(args[i]) + 1;
+		len += strlen(args[i]);
 	}
 	/* In case it's empty. */
 	dst[len] = '\0';




More information about the Lguest mailing list