diff options
Diffstat (limited to 'results/classifier/deepseek-2/output/boot/1860914')
| -rw-r--r-- | results/classifier/deepseek-2/output/boot/1860914 | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/results/classifier/deepseek-2/output/boot/1860914 b/results/classifier/deepseek-2/output/boot/1860914 new file mode 100644 index 000000000..fada6285e --- /dev/null +++ b/results/classifier/deepseek-2/output/boot/1860914 @@ -0,0 +1,14 @@ + +QEMU prepends pathnames to command lines of Multiboot kernels and modules, contrary to the specification + +When QEMU is launched with the -kernel option to boot a Multiboot image, the command line passed in the -append option is additionally prefixed the pathname of the kernel image and a space. Likewise, module command lines passed in the -initrd option are passed with the module pathname and a space prepended. At the very least the former is contary to what is prescribed in the Multiboot specification, version 0.6.96[0], which says in ยง3.3: + +> General-purpose boot loaders should allow user a complete control on command line independently of other factors like image name. + +With respect to module command lines, the spec is less clear, but GNU GRUB2 (the de facto reference implementation) does not prepend pathnames to command lines of either. I haven't tested GRUB legacy, but I assume it exhibits the same behaviour. It would be strange if passing pathnames was in fact intended; bootloader pathnames are useless to the loaded kernel, which may potentially have a completely different view of the file system from the bootloader. + +Also, given that a kernel pathname may contain spaces, skipping it in the command line cannot be done reliably, while loading a Multiboot module from a pathname that contains spaces is outright impossible. + +Found in 4.2.0, but latest git master apparently behaves the same. + +[0]: https://www.gnu.org/software/grub/manual/multiboot/multiboot.html \ No newline at end of file |