We are improperly feeding the entire boot parameter string to Xen's generic command line parser. This can have unexpected results when one of the dom0 parameters, such as console=X, has meaning to the Xen parser. First reported by Maria Butrico.
Signed-off-by: Amos Waterland <[EMAIL PROTECTED]> --- setup.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff -r 261c458e46af xen/arch/powerpc/setup.c --- a/xen/arch/powerpc/setup.c Fri Sep 29 18:13:27 2006 -0400 +++ b/xen/arch/powerpc/setup.c Mon Oct 02 00:17:07 2006 -0400 @@ -279,8 +279,20 @@ static void __init __start_xen(multiboot ticks_per_usec = timebase_freq / 1000000ULL; /* Parse the command-line options. */ - if ((mbi->flags & MBI_CMDLINE) && (mbi->cmdline != 0)) - cmdline_parse(__va((ulong)mbi->cmdline)); + if ((mbi->flags & MBI_CMDLINE) && (mbi->cmdline != 0)) { + char *end, *src = (char *)(ulong)mbi->cmdline; + char buff[256]; + + end = strstr(src, "--"); + + if (end && (end - src < sizeof(buff))) { + strlcpy(buff, src, end - src); + } else { + strlcpy(buff, src, sizeof(buff)); + } + + cmdline_parse(buff); + } /* We initialise the serial devices very early so we can get debugging. */ ns16550.io_base = 0x3f8; _______________________________________________ Xen-ppc-devel mailing list Xen-ppc-devel@lists.xensource.com http://lists.xensource.com/xen-ppc-devel