Patchwork isapc: fix segfault.

login
register
mail settings
Submitter Isaku Yamahata
Date Aug. 4, 2010, 8:43 a.m.
Message ID <1bdc30e5adedf2534f7619a40bddfc2a2a8b138f.1280911374.git.yamahata@valinux.co.jp>
Download mbox | patch
Permalink /patch/60832/
State New
Headers show

Comments

Isaku Yamahata - Aug. 4, 2010, 8:43 a.m.
https://bugs.launchpad.net/bugs/611646
reports that ./i386-softmmu/qemu -M isapc segfaults.
This patch fixes the segfault introduced by
f885f1eaa8711c06033ceb1599e3750fb37c306f

It's because i440fx_state in pc_init1() isn't initialized.

> Core was generated by `./i386-softmmu/qemu -M isapc'.
> Program terminated with signal 11, Segmentation fault.
> [New process 19686]
>     at qemu/hw/piix_pci.c:136
> (gdb) where
>     at qemu/hw/piix_pci.c:136
>     boot_device=0x7fffe1f5b040 "cad", kernel_filename=0x0,
>     kernel_cmdline=0x6469bf "", initrd_filename=0x0,
>     cpu_model=0x654d10 "486", pci_enabled=0)
>     at qemu/hw/pc_piix.c:178
>     boot_device=0x7fffe1f5b040 "cad", kernel_filename=0x0,
>     kernel_cmdline=0x6469bf "", initrd_filename=0x0, cpu_model=0x654d10 "486")
>     at qemu/hw/pc_piix.c:207
>     envp=0x7fffe1f5b188)
>     at qemu/vl.c:2871

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
---
 hw/pc_piix.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
Isaku Yamahata - Aug. 24, 2010, 5:06 a.m.
Ping.

On Wed, Aug 04, 2010 at 05:43:20PM +0900, Isaku Yamahata wrote:
> https://bugs.launchpad.net/bugs/611646
> reports that ./i386-softmmu/qemu -M isapc segfaults.
> This patch fixes the segfault introduced by
> f885f1eaa8711c06033ceb1599e3750fb37c306f
> 
> It's because i440fx_state in pc_init1() isn't initialized.
> 
> > Core was generated by `./i386-softmmu/qemu -M isapc'.
> > Program terminated with signal 11, Segmentation fault.
> > [New process 19686]
> >     at qemu/hw/piix_pci.c:136
> > (gdb) where
> >     at qemu/hw/piix_pci.c:136
> >     boot_device=0x7fffe1f5b040 "cad", kernel_filename=0x0,
> >     kernel_cmdline=0x6469bf "", initrd_filename=0x0,
> >     cpu_model=0x654d10 "486", pci_enabled=0)
> >     at qemu/hw/pc_piix.c:178
> >     boot_device=0x7fffe1f5b040 "cad", kernel_filename=0x0,
> >     kernel_cmdline=0x6469bf "", initrd_filename=0x0, cpu_model=0x654d10 "486")
> >     at qemu/hw/pc_piix.c:207
> >     envp=0x7fffe1f5b188)
> >     at qemu/vl.c:2871
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
> ---
>  hw/pc_piix.c |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
> 
> diff --git a/hw/pc_piix.c b/hw/pc_piix.c
> index 812ddfd..34c65d5 100644
> --- a/hw/pc_piix.c
> +++ b/hw/pc_piix.c
> @@ -103,6 +103,7 @@ static void pc_init1(ram_addr_t ram_size,
>          pci_bus = i440fx_init(&i440fx_state, &piix3_devfn, isa_irq, ram_size);
>      } else {
>          pci_bus = NULL;
> +        i440fx_state = NULL;
>          isa_bus_new(NULL);
>      }
>      isa_bus_irqs(isa_irq);
> -- 
> 1.7.1.1
> 
>
Blue Swirl - Aug. 28, 2010, 9:04 a.m.
Thanks, applied.

On Tue, Aug 24, 2010 at 5:06 AM, Isaku Yamahata <yamahata@valinux.co.jp> wrote:
> Ping.
>
> On Wed, Aug 04, 2010 at 05:43:20PM +0900, Isaku Yamahata wrote:
>> https://bugs.launchpad.net/bugs/611646
>> reports that ./i386-softmmu/qemu -M isapc segfaults.
>> This patch fixes the segfault introduced by
>> f885f1eaa8711c06033ceb1599e3750fb37c306f
>>
>> It's because i440fx_state in pc_init1() isn't initialized.
>>
>> > Core was generated by `./i386-softmmu/qemu -M isapc'.
>> > Program terminated with signal 11, Segmentation fault.
>> > [New process 19686]
>> >     at qemu/hw/piix_pci.c:136
>> > (gdb) where
>> >     at qemu/hw/piix_pci.c:136
>> >     boot_device=0x7fffe1f5b040 "cad", kernel_filename=0x0,
>> >     kernel_cmdline=0x6469bf "", initrd_filename=0x0,
>> >     cpu_model=0x654d10 "486", pci_enabled=0)
>> >     at qemu/hw/pc_piix.c:178
>> >     boot_device=0x7fffe1f5b040 "cad", kernel_filename=0x0,
>> >     kernel_cmdline=0x6469bf "", initrd_filename=0x0, cpu_model=0x654d10 "486")
>> >     at qemu/hw/pc_piix.c:207
>> >     envp=0x7fffe1f5b188)
>> >     at qemu/vl.c:2871
>>
>> Signed-off-by: Markus Armbruster <armbru@redhat.com>
>> Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
>> ---
>>  hw/pc_piix.c |    1 +
>>  1 files changed, 1 insertions(+), 0 deletions(-)
>>
>> diff --git a/hw/pc_piix.c b/hw/pc_piix.c
>> index 812ddfd..34c65d5 100644
>> --- a/hw/pc_piix.c
>> +++ b/hw/pc_piix.c
>> @@ -103,6 +103,7 @@ static void pc_init1(ram_addr_t ram_size,
>>          pci_bus = i440fx_init(&i440fx_state, &piix3_devfn, isa_irq, ram_size);
>>      } else {
>>          pci_bus = NULL;
>> +        i440fx_state = NULL;
>>          isa_bus_new(NULL);
>>      }
>>      isa_bus_irqs(isa_irq);
>> --
>> 1.7.1.1
>>
>>
>
> --
> yamahata
>
>

Patch

diff --git a/hw/pc_piix.c b/hw/pc_piix.c
index 812ddfd..34c65d5 100644
--- a/hw/pc_piix.c
+++ b/hw/pc_piix.c
@@ -103,6 +103,7 @@  static void pc_init1(ram_addr_t ram_size,
         pci_bus = i440fx_init(&i440fx_state, &piix3_devfn, isa_irq, ram_size);
     } else {
         pci_bus = NULL;
+        i440fx_state = NULL;
         isa_bus_new(NULL);
     }
     isa_bus_irqs(isa_irq);