cleanup various minor issues reported by nsz
[musl] / src / linux / sbrk.c
index b2943a9..3643765 100644 (file)
@@ -1,7 +1,9 @@
-#include <stddef.h>
+#include <stdint.h>
 #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;
 }