diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2014-08-07 21:11:11 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2014-08-07 21:11:11 +0200 |
commit | 0a101736b885578f673bc08b7fd040e977ede331 (patch) | |
tree | 09d97951f0dcb7a50af5b4603018ea7bb8a0064f /sys/src | |
parent | d304dc8119a737c65eca8717e1f436a1e0edf880 (diff) |
pc, pc64: make pc kaddr() check reject -KZERO address (thanks aiju)
Diffstat (limited to 'sys/src')
-rw-r--r-- | sys/src/9/pc/mmu.c | 2 | ||||
-rw-r--r-- | sys/src/9/pc64/mmu.c | 2 | ||||
-rw-r--r-- | 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; } |