X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Flinux%2Fsbrk.c;h=36437653bb9085b02908f402403e59cee7bd637c;hb=faea4c9937d36b17e53fdc7d5a254d7e936e1755;hp=56f60d1b492540ea8145353e349b7562dfa2b90d;hpb=0b44a0315b47dd8eced9f3b7f31580cf14bbfc01;p=musl diff --git a/src/linux/sbrk.c b/src/linux/sbrk.c index 56f60d1b..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 *)syscall1(__NR_brk, syscall1(__NR_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; }