fix undefined behavior in ptrace
[musl] / src / linux / sbrk.c
index b2943a9..1e82d64 100644 (file)
@@ -1,7 +1,9 @@
-#include <stddef.h>
+#include <stdint.h>
+#include <errno.h>
 #include "syscall.h"
 
-void *sbrk(ptrdiff_t inc)
+void *sbrk(intptr_t inc)
 {
-       return (void *)syscall(SYS_brk, syscall(SYS_brk, 0)+inc);
+       if (inc) return (void *)__syscall_ret(-ENOMEM);
+       return (void *)__syscall(SYS_brk, 0);
 }