Re: [Qemu-devel] [PATCH v3 2/3] hmp: fix "dump-quest-memory" segfault (arm)
On Tue, 12 Sep 2017 16:01:48 +0200 Laurent Vivierwrote: > Running QEMU with > qemu-system-aarch64 -M none -nographic -m 256 > and executing > dump-guest-memory /dev/null 0 8192 > results in segfault > > Fix by checking if we have CPU, and exit with > error if there is no CPU: > > (qemu) dump-guest-memory /dev/null > this feature or command is not currently supported > > Signed-off-by: Laurent Vivier > --- Reviewed-by: Greg Kurz > target/arm/arch_dump.c | 11 +-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/target/arm/arch_dump.c b/target/arm/arch_dump.c > index 1a9861f69b..9e5b2fb31c 100644 > --- a/target/arm/arch_dump.c > +++ b/target/arm/arch_dump.c > @@ -273,11 +273,18 @@ int arm_cpu_write_elf32_note(WriteCoreDumpFunction f, > CPUState *cs, > int cpu_get_dump_info(ArchDumpInfo *info, >const GuestPhysBlockList *guest_phys_blocks) > { > -ARMCPU *cpu = ARM_CPU(first_cpu); > -CPUARMState *env = >env; > +ARMCPU *cpu; > +CPUARMState *env; > GuestPhysBlock *block; > hwaddr lowest_addr = ULLONG_MAX; > > +if (first_cpu == NULL) { > +return -1; > +} > + > +cpu = ARM_CPU(first_cpu); > +env = >env; > + > /* Take a best guess at the phys_base. If we get it wrong then crash > * will need '--machdep phys_offset=' added to its command > * line, which isn't any worse than assuming we can use zero, but being pgpAO0SfklUxm.pgp Description: OpenPGP digital signature
Re: [Qemu-devel] [PATCH v3 2/3] hmp: fix "dump-quest-memory" segfault (arm)
On 12.09.2017 16:01, Laurent Vivier wrote: > Running QEMU with > qemu-system-aarch64 -M none -nographic -m 256 > and executing > dump-guest-memory /dev/null 0 8192 > results in segfault > > Fix by checking if we have CPU, and exit with > error if there is no CPU: > > (qemu) dump-guest-memory /dev/null > this feature or command is not currently supported > > Signed-off-by: Laurent Vivier> --- > target/arm/arch_dump.c | 11 +-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/target/arm/arch_dump.c b/target/arm/arch_dump.c > index 1a9861f69b..9e5b2fb31c 100644 > --- a/target/arm/arch_dump.c > +++ b/target/arm/arch_dump.c > @@ -273,11 +273,18 @@ int arm_cpu_write_elf32_note(WriteCoreDumpFunction f, > CPUState *cs, > int cpu_get_dump_info(ArchDumpInfo *info, >const GuestPhysBlockList *guest_phys_blocks) > { > -ARMCPU *cpu = ARM_CPU(first_cpu); > -CPUARMState *env = >env; > +ARMCPU *cpu; > +CPUARMState *env; > GuestPhysBlock *block; > hwaddr lowest_addr = ULLONG_MAX; > > +if (first_cpu == NULL) { > +return -1; > +} > + > +cpu = ARM_CPU(first_cpu); > +env = >env; > + > /* Take a best guess at the phys_base. If we get it wrong then crash > * will need '--machdep phys_offset=' added to its command > * line, which isn't any worse than assuming we can use zero, but being > Reviewed-by: Thomas Huth
[Qemu-devel] [PATCH v3 2/3] hmp: fix "dump-quest-memory" segfault (arm)
Running QEMU with qemu-system-aarch64 -M none -nographic -m 256 and executing dump-guest-memory /dev/null 0 8192 results in segfault Fix by checking if we have CPU, and exit with error if there is no CPU: (qemu) dump-guest-memory /dev/null this feature or command is not currently supported Signed-off-by: Laurent Vivier--- target/arm/arch_dump.c | 11 +-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/target/arm/arch_dump.c b/target/arm/arch_dump.c index 1a9861f69b..9e5b2fb31c 100644 --- a/target/arm/arch_dump.c +++ b/target/arm/arch_dump.c @@ -273,11 +273,18 @@ int arm_cpu_write_elf32_note(WriteCoreDumpFunction f, CPUState *cs, int cpu_get_dump_info(ArchDumpInfo *info, const GuestPhysBlockList *guest_phys_blocks) { -ARMCPU *cpu = ARM_CPU(first_cpu); -CPUARMState *env = >env; +ARMCPU *cpu; +CPUARMState *env; GuestPhysBlock *block; hwaddr lowest_addr = ULLONG_MAX; +if (first_cpu == NULL) { +return -1; +} + +cpu = ARM_CPU(first_cpu); +env = >env; + /* Take a best guess at the phys_base. If we get it wrong then crash * will need '--machdep phys_offset=' added to its command * line, which isn't any worse than assuming we can use zero, but being -- 2.13.5