X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Flinux%2Fsbrk.c;h=36437653bb9085b02908f402403e59cee7bd637c;hb=0636d5977aa796d78869ee310c6e69220b919eee;hp=b2943a9239533967b1f8468dc607804b31335b0d;hpb=aa398f56fa398f2202b04e82c67f822f3233786f;p=musl diff --git a/src/linux/sbrk.c b/src/linux/sbrk.c index b2943a92..36437653 100644 --- a/src/linux/sbrk.c +++ b/src/linux/sbrk.c @@ -1,7 +1,9 @@ -#include +#include #include "syscall.h" -void *sbrk(ptrdiff_t inc) +void *sbrk(intptr_t inc) { - return (void *)syscall(SYS_brk, syscall(SYS_brk, 0)+inc); + unsigned long cur = syscall(SYS_brk, 0); + if (inc && syscall(SYS_brk, cur+inc) != cur+inc) return (void *)-1; + return (void *)cur; }