diff options
author | mdf <mdf@FreeBSD.org> | 2012-07-15 20:29:48 +0000 |
---|---|---|
committer | mdf <mdf@FreeBSD.org> | 2012-07-15 20:29:48 +0000 |
commit | a42ef9b109ee5ee45250fc3bbaa770c3e62a0de4 (patch) | |
tree | 2a0f83e86809435c7447ffbd609f73783ac90342 /sys/kern/kern_malloc.c | |
parent | 2357a49326f12023cbed9f16a7a74841c1e49b97 (diff) | |
download | FreeBSD-src-a42ef9b109ee5ee45250fc3bbaa770c3e62a0de4.zip FreeBSD-src-a42ef9b109ee5ee45250fc3bbaa770c3e62a0de4.tar.gz |
Fix a bug with memguard(9) on 32-bit architectures without a
VM_KMEM_MAX_SIZE.
The code was not taking into account the size of the kernel_map, which
the kmem_map is allocated from, so it could produce a sub-map size too
large to fit. The simplest solution is to ignore VM_KMEM_MAX entirely
and base the memguard map's size off the kernel_map's size, since this
is always relevant and always smaller.
Found by: Justin Hibbits
Diffstat (limited to 'sys/kern/kern_malloc.c')
-rw-r--r-- | sys/kern/kern_malloc.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/kern_malloc.c b/sys/kern/kern_malloc.c index 18428c0..e06fa59 100644 --- a/sys/kern/kern_malloc.c +++ b/sys/kern/kern_malloc.c @@ -744,7 +744,7 @@ kmeminit(void *dummy) vm_kmem_size = 2 * mem_size * PAGE_SIZE; #ifdef DEBUG_MEMGUARD - tmp = memguard_fudge(vm_kmem_size, vm_kmem_size_max); + tmp = memguard_fudge(vm_kmem_size, kernel_map); #else tmp = vm_kmem_size; #endif |