summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2014-08-07 21:11:11 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2014-08-07 21:11:11 +0200
commit0a101736b885578f673bc08b7fd040e977ede331 (patch)
tree09d97951f0dcb7a50af5b4603018ea7bb8a0064f
parentd304dc8119a737c65eca8717e1f436a1e0edf880 (diff)
pc, pc64: make pc kaddr() check reject -KZERO address (thanks aiju)
-rw-r--r--sys/src/9/pc/mmu.c2
-rw-r--r--sys/src/9/pc64/mmu.c2
-rw-r--r--sys/src/9/port/xalloc.c2
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;
}