diff options
Diffstat (limited to 'lib/libc/gen/valloc.c')
-rw-r--r-- | lib/libc/gen/valloc.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/libc/gen/valloc.c b/lib/libc/gen/valloc.c index 456f31d..9d888d3 100644 --- a/lib/libc/gen/valloc.c +++ b/lib/libc/gen/valloc.c @@ -41,12 +41,12 @@ __FBSDID("$FreeBSD$"); #include <unistd.h> void * -valloc(i) - size_t i; +valloc(size_t i) { - long valsiz = getpagesize(), j; - void *cp = malloc(i + (valsiz-1)); + void *ret; - j = ((long)cp + (valsiz-1)) &~ (valsiz-1); - return ((void *)j); + if (posix_memalign(&ret, getpagesize(), i) != 0) + ret = NULL; + + return ret; } |