about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/internal/syscall_ret.c6
-rw-r--r--src/linux/sbrk.c4
-rw-r--r--src/time/__asctime.c3
-rw-r--r--src/unistd/setpgid.c2
4 files changed, 8 insertions, 7 deletions
diff --git a/src/internal/syscall_ret.c b/src/internal/syscall_ret.c
index 4f159e0b..e4a1bdbe 100644
--- a/src/internal/syscall_ret.c
+++ b/src/internal/syscall_ret.c
@@ -3,9 +3,9 @@
 
 long __syscall_ret(unsigned long r)
 {
-	if (r >= (unsigned long)-1 - 4096) {
-		errno = -(long)r;
+	if (r > -4096UL) {
+		errno = -r;
 		return -1;
 	}
-	return (long)r;
+	return r;
 }
diff --git a/src/linux/sbrk.c b/src/linux/sbrk.c
index 5fab74be..36437653 100644
--- a/src/linux/sbrk.c
+++ b/src/linux/sbrk.c
@@ -1,7 +1,7 @@
-#include <stddef.h>
+#include <stdint.h>
 #include "syscall.h"
 
-void *sbrk(ptrdiff_t inc)
+void *sbrk(intptr_t inc)
 {
 	unsigned long cur = syscall(SYS_brk, 0);
 	if (inc && syscall(SYS_brk, cur+inc) != cur+inc) return (void *)-1;
diff --git a/src/time/__asctime.c b/src/time/__asctime.c
index d31f6347..7cc4f503 100644
--- a/src/time/__asctime.c
+++ b/src/time/__asctime.c
@@ -1,6 +1,7 @@
 #include <time.h>
 #include <stdio.h>
 #include <langinfo.h>
+#include "atomic.h"
 
 const char *__langinfo(nl_item);
 
@@ -21,7 +22,7 @@ char *__asctime(const struct tm *tm, char *buf)
 		 * application developers that they may not be so lucky
 		 * on other implementations (e.g. stack smashing..).
 		 */
-		*(volatile int*)0 = 0;
+		a_crash();
 	}
 	return buf;
 }
diff --git a/src/unistd/setpgid.c b/src/unistd/setpgid.c
index 4a5a3d6b..06160695 100644
--- a/src/unistd/setpgid.c
+++ b/src/unistd/setpgid.c
@@ -1,7 +1,7 @@
 #include <unistd.h>
 #include "syscall.h"
 
-pid_t setpgid(pid_t pid, pid_t pgid)
+int setpgid(pid_t pid, pid_t pgid)
 {
 	return syscall(SYS_setpgid, pid, pgid);
 }