Re: [Qemu-devel] [PATCH v4 1/4] hmp: fix "dump-quest-memory" segfault (ppc)

2017-09-13 Thread David Gibson
On Wed, Sep 13, 2017 at 04:20:33PM +0200, Laurent Vivier wrote:
> Running QEMU with
> qemu-system-ppc64 -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 
> Reviewed-by: Thomas Huth 

Acked-by: David Gibson 

> ---
>  target/ppc/arch_dump.c | 11 +--
>  1 file changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/target/ppc/arch_dump.c b/target/ppc/arch_dump.c
> index 8e9397aa58..95b9ab6f29 100644
> --- a/target/ppc/arch_dump.c
> +++ b/target/ppc/arch_dump.c
> @@ -224,8 +224,15 @@ typedef struct NoteFuncDescStruct NoteFuncDesc;
>  int cpu_get_dump_info(ArchDumpInfo *info,
>const struct GuestPhysBlockList *guest_phys_blocks)
>  {
> -PowerPCCPU *cpu = POWERPC_CPU(first_cpu);
> -PowerPCCPUClass *pcc = POWERPC_CPU_GET_CLASS(cpu);
> +PowerPCCPU *cpu;
> +PowerPCCPUClass *pcc;
> +
> +if (first_cpu == NULL) {
> +return -1;
> +}
> +
> +cpu = POWERPC_CPU(first_cpu);
> +pcc = POWERPC_CPU_GET_CLASS(cpu);
>  
>  info->d_machine = PPC_ELF_MACHINE;
>  info->d_class = ELFCLASS;

-- 
David Gibson| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au  | minimalist, thank you.  NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson


signature.asc
Description: PGP signature


[Qemu-devel] [PATCH v4 1/4] hmp: fix "dump-quest-memory" segfault (ppc)

2017-09-13 Thread Laurent Vivier
Running QEMU with
qemu-system-ppc64 -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 
Reviewed-by: Thomas Huth 
---
 target/ppc/arch_dump.c | 11 +--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/target/ppc/arch_dump.c b/target/ppc/arch_dump.c
index 8e9397aa58..95b9ab6f29 100644
--- a/target/ppc/arch_dump.c
+++ b/target/ppc/arch_dump.c
@@ -224,8 +224,15 @@ typedef struct NoteFuncDescStruct NoteFuncDesc;
 int cpu_get_dump_info(ArchDumpInfo *info,
   const struct GuestPhysBlockList *guest_phys_blocks)
 {
-PowerPCCPU *cpu = POWERPC_CPU(first_cpu);
-PowerPCCPUClass *pcc = POWERPC_CPU_GET_CLASS(cpu);
+PowerPCCPU *cpu;
+PowerPCCPUClass *pcc;
+
+if (first_cpu == NULL) {
+return -1;
+}
+
+cpu = POWERPC_CPU(first_cpu);
+pcc = POWERPC_CPU_GET_CLASS(cpu);
 
 info->d_machine = PPC_ELF_MACHINE;
 info->d_class = ELFCLASS;
-- 
2.13.5