[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] bootdevice: fix segment fault when booting gues
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH] bootdevice: fix segment fault when booting guest with '-kernel' and '-initrd' |
Date: |
Fri, 27 Feb 2015 15:15:34 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 |
Looks good, I am applying it locally so that it can get into qemu.git
very soon.
Paolo
On 27/02/2015 02:49, address@hidden wrote:
> From: Gonglei <address@hidden>
>
> 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 <address@hidden>
> Signed-off-by: Gonglei <address@hidden>
> ---
> bootdevice.c | 13 +++++++++----
> 1 file changed, 9 insertions(+), 4 deletions(-)
>
> diff --git a/bootdevice.c b/bootdevice.c
> index df9ab0e..673bfef 100644
> --- a/bootdevice.c
> +++ b/bootdevice.c
> @@ -223,10 +223,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);
> }
>