[OpenBIOS] [commit] r1124 - trunk/openbios-devel/arch/ppc/qemu

repository service svn at openbios.org
Fri Apr 19 09:04:43 CEST 2013


Author: mcayland
Date: Fri Apr 19 09:04:40 2013
New Revision: 1124
URL: http://tracker.coreboot.org/trac/openbios/changeset/1124

Log:
PPC: Remove zero page mapping from MMU to enable detection of NULL pointer dereferences

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland at ilande.co.uk>

Modified:
   trunk/openbios-devel/arch/ppc/qemu/ofmem.c

Modified: trunk/openbios-devel/arch/ppc/qemu/ofmem.c
==============================================================================
--- trunk/openbios-devel/arch/ppc/qemu/ofmem.c	Fri Apr 19 09:04:32 2013	(r1123)
+++ trunk/openbios-devel/arch/ppc/qemu/ofmem.c	Fri Apr 19 09:04:40 2013	(r1124)
@@ -549,9 +549,14 @@
 {
     ofmem_t *ofmem = ofmem_arch_get_private();
 
-    ofmem_claim_phys(0, get_ram_bottom(), 0);
-    ofmem_claim_virt(0, get_ram_bottom(), 0);
-    ofmem_map(0, 0, get_ram_bottom(), 0);
+    /* Map the memory (don't map page 0 to allow catching of NULL dereferences) */
+    ofmem_claim_phys(PAGE_SIZE, get_ram_bottom() - PAGE_SIZE, 0);
+    ofmem_claim_virt(PAGE_SIZE, get_ram_bottom() - PAGE_SIZE, 0);
+    ofmem_map(PAGE_SIZE, PAGE_SIZE, get_ram_bottom() - PAGE_SIZE, 0);
+
+    /* Mark the first page as non-free */
+    ofmem_claim_phys(0, PAGE_SIZE, 0);
+    ofmem_claim_virt(0, PAGE_SIZE, 0);
 
     /* Map everything at the top of physical RAM 1:1, minus the OpenBIOS ROM in RAM copy */
     ofmem_claim_phys(get_ram_top(), get_hash_base() + HASH_SIZE - get_ram_top(), 0);



More information about the OpenBIOS mailing list