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/