Further testing / polishing the multi-boot kernel loading support I found
the existing code fails to load unusual small kernels, less than 8192
bytes -
for example the example multi-boot kernel shipped within GRUB that
compiles to just 7121 bytes on my system.
Signed-off-by: René Rebe <address@hidden>
--- hw/pc.c (revision 6501)
+++ hw/pc.c (working copy)
@@ -554,7 +989,7 @@
/* load the kernel header */
f = fopen(kernel_filename, "rb");
if (!f || !(kernel_size = get_file_size(f)) ||
- fread(header, 1, 1024, f) != 1024) {
+ fread(header, 1, MIN(8192, kernel_size), f) != MIN(8192,
kernel_size)) {
fprintf(stderr, "qemu: could not load kernel '%s'\n",
kernel_filename);
exit(1);