large -initrd can wrap around in memory causing memory corruption
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Expired
|
Undecided
|
Unassigned |
Bug Description
We don't use large -initrd in libguestfs any more, but I noticed that a large -initrd file now crashes qemu spectacularly:
$ ls -lh /tmp/kernel /tmp/initrd
-rw-r--r--. 1 rjones rjones 273M Jun 3 14:02 /tmp/initrd
lrwxrwxrwx. 1 rjones rjones 35 Jun 3 14:02 /tmp/kernel -> /boot/vmlinuz-
$ ./x86_64-
-kernel /tmp/kernel -initrd /tmp/initrd -hda /tmp/test1.img -serial stdio \
-append console=ttyS0
qemu crashes with one of several errors:
PFLASH: Possible BUG - Write block confirm
qemu: fatal: Trying to execute code outside RAM or ROM at 0x00000000000b96cd
If -enable-kvm is used:
KVM: injection failed, MSI lost (Operation not permitted)
In all cases the SDL display fills up with coloured blocks before the crash (see the attached screenshot).
summary: |
- large -initrd crashes qemu + large -initrd can wrap around in memory causing memory corruption |
I'm using qemu from git (f10acc8b38d65a 66ffa0588a03648 9d7fa6a593e) .