OSDN Git Service

s390x: s390_cpu_get_phys_page_debug has to return -1
authorDavid Hildenbrand <dahi@linux.vnet.ibm.com>
Wed, 9 Dec 2015 15:36:42 +0000 (16:36 +0100)
committerCornelia Huck <cornelia.huck@de.ibm.com>
Wed, 27 Jan 2016 14:34:48 +0000 (15:34 +0100)
If translation fails, we have to return -1. For now, we
would simply return the value last stored to raddr (if any).

This way, reading invalid memory via gdb will return values, although it
shouldn't.

Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
target-s390x/helper.c

index e541d69..1231e58 100644 (file)
@@ -162,8 +162,9 @@ hwaddr s390_cpu_get_phys_page_debug(CPUState *cs, vaddr vaddr)
         vaddr &= 0x7fffffff;
     }
 
-    mmu_translate(env, vaddr, MMU_INST_FETCH, asc, &raddr, &prot, false);
-
+    if (mmu_translate(env, vaddr, MMU_INST_FETCH, asc, &raddr, &prot, false)) {
+        return -1;
+    }
     return raddr;
 }