From 0a101736b885578f673bc08b7fd040e977ede331 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Thu, 7 Aug 2014 21:11:11 +0200 Subject: pc, pc64: make pc kaddr() check reject -KZERO address (thanks aiju) --- sys/src/9/pc/mmu.c | 2 +- sys/src/9/pc64/mmu.c | 2 +- sys/src/9/port/xalloc.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/src/9/pc/mmu.c b/sys/src/9/pc/mmu.c index 4c3284646..3ed8229e4 100644 --- a/sys/src/9/pc/mmu.c +++ b/sys/src/9/pc/mmu.c @@ -947,7 +947,7 @@ tmpunmap(void *v) void* kaddr(ulong pa) { - if(pa > (ulong)-KZERO) + if(pa >= (ulong)-KZERO) panic("kaddr: pa=%#.8lux", pa); return (void*)(pa+KZERO); } diff --git a/sys/src/9/pc64/mmu.c b/sys/src/9/pc64/mmu.c index 255b1c0b3..f25d485e1 100644 --- a/sys/src/9/pc64/mmu.c +++ b/sys/src/9/pc64/mmu.c @@ -143,7 +143,7 @@ mmuinit(void) void* kaddr(uintptr pa) { - if(pa > (uintptr)-KZERO) + if(pa >= (uintptr)-KZERO) panic("kaddr: pa=%#p pc=%#p", pa, getcallerpc(&pa)); return (void*)(pa+KZERO); } diff --git a/sys/src/9/port/xalloc.c b/sys/src/9/port/xalloc.c index b677b252b..62afcac37 100644 --- a/sys/src/9/port/xalloc.c +++ b/sys/src/9/port/xalloc.c @@ -72,7 +72,7 @@ xinit(void) /* first give to kernel */ if(n > 0){ m->kbase = (uintptr)KADDR(m->base); - m->klimit = (uintptr)KADDR(m->base+size); + m->klimit = (uintptr)KADDR(m->base+size-1)+1; xhole(m->base, size); kpages -= n; } -- cgit v1.2.3