Skip to content

Commit

Permalink
bootdevice: fix segment fault when booting guest with '-kernel' and '…
Browse files Browse the repository at this point in the history
…-initrd'

Reproducer:

 $./qemu-system-x86_64 --enable-kvm -kernel /home/vmlinuz-2.6.32.12-0.7-default \
  -initrd /home/initrd-2.6.32.12-0.7-default -append \
 "root=/dev/ram rw console=ttyS0,115200" -dtb guest.dtb -vnc :10 --monitor stdio -smp 2
QEMU 2.2.50 monitor - type 'help' for more information
(qemu) Segmentation fault (core dumped)

Reported-by: Edivaldo de Araujo Pereira <edivaldoapereira@yahoo.com.br>
Signed-off-by: Gonglei <arei.gonglei@huawei.com>
Message-Id: <1425001784-6752-1-git-send-email-arei.gonglei@huawei.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
  • Loading branch information
gongleiarei authored and bonzini committed Feb 27, 2015
1 parent 2ed1ebc commit 57fe6a6
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions bootdevice.c
Original file line number Diff line number Diff line change
Expand Up @@ -221,10 +221,15 @@ char *get_boot_devices_list(size_t *size, bool ignore_suffixes)
}

if (!ignore_suffixes) {
d = qdev_get_own_fw_dev_path_from_handler(i->dev->parent_bus, i->dev);
if (d) {
assert(!i->suffix);
suffix = d;
if (i->dev) {
d = qdev_get_own_fw_dev_path_from_handler(i->dev->parent_bus,
i->dev);
if (d) {
assert(!i->suffix);
suffix = d;
} else {
suffix = g_strdup(i->suffix);
}
} else {
suffix = g_strdup(i->suffix);
}
Expand Down

0 comments on commit 57fe6a6

Please sign in to comment.