I have tried the latest GRUB CVS with the linux kernel command
line parser work-around and verified that I can boot into a shell
(/bin/sh -> really it is ash.static) prompt.

Thanks OKUJI!



On Tue, 12 Sep 2000, OKUJI Yoshinori wrote:

>   I found a bug in the command-line parser, parse_options in
> init/main.c. I examined only 2.2.16 and 2.2.17, but there might remain
> the same problem in 2.4.0-test?.
> 
>   The phenomenon is that argv_init becomes {"init", "", NULL}, when
> one inputs a command-line like:
> 
> root=/dev/ram  ro
>              ^^
>           two spaces
> 
> This is harmful for some shell programs. You might think he just
> need to be careful enough not to insert multiple spaces between two
> options, but things are not so trivial. On i386 (I haven't tested any
> other architecture), "mem=XXX" is handled in arch/i386/kernel/setup.c
> but the function setup_arch doesn't remove any space after the option
> correctly, so if the user enters "mem=128M root=/dev/hda", the string
> command_line returned by the function setup_arch will be
> " root=/dev/hda" instead of "root=/dev/hda", and then argv_init will
> be {"init", "", NULL}, even though the user doesn't input multiple
> spaces.
> 
>   It is possible to avoid this problem in boot loaders (yes, in fact,
> I did in GRUB), but I think it would be better to fix the bug itself
> in Linux. Thus, I propose this simple patch:
> 
> *** linux-2.2.17.orig/init/main.c     Tue Sep  5 02:39:28 2000
> --- linux-2.2.17/init/main.c  Tue Sep 12 06:02:34 2000
> ***************
> *** 1254,1259 ****
> --- 1254,1262 ----
>                   }
>                   if (next != NULL)
>                           *next++ = 0;
> +             if (!*line)
> +                     continue;
> +             
>               /*
>                * check for kernel options first..
>                */
> 
> 
> Thanks,
> Okuji
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [EMAIL PROTECTED]
> Please read the FAQ at http://www.tux.org/lkml/
> 

-- 

Chan Shih-Ping (Richard) <[EMAIL PROTECTED]>
DSO National Laboratories
20 Science Park Drive
Singapore 118230

Reply via email to