diff options
author | Xing Li <lixing@loongson.cn> | 2022-11-29 19:24:43 +0800 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2022-12-07 10:37:06 -0300 |
commit | 36d423e2032e98305799071b831691fc4c06deea (patch) | |
tree | e1091f68c14fc6877a0ad8cd34af0cfd79c0e42a | |
parent | 9f482b73f41a9a1bbfb173aad0733d1c824c788a (diff) | |
download | glibc-36d423e2032e98305799071b831691fc4c06deea.zip glibc-36d423e2032e98305799071b831691fc4c06deea.tar.gz glibc-36d423e2032e98305799071b831691fc4c06deea.tar.bz2 |
linux: Use long int for syscall return value
The linux syscall ABI returns long, so the generic syscall code for
linux should use long for the return value.
This fixes the truncation of the return value of the syscall function
when that does not fit into an int.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
-rw-r--r-- | sysdeps/unix/sysv/linux/syscall.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sysdeps/unix/sysv/linux/syscall.c b/sysdeps/unix/sysv/linux/syscall.c index 7303ba7..8cb0b66 100644 --- a/sysdeps/unix/sysv/linux/syscall.c +++ b/sysdeps/unix/sysv/linux/syscall.c @@ -33,7 +33,7 @@ syscall (long int number, ...) long int a5 = va_arg (args, long int); va_end (args); - int r = INTERNAL_SYSCALL_NCS_CALL (number, a0, a1, a2, a3, a4, a5); + long int r = INTERNAL_SYSCALL_NCS_CALL (number, a0, a1, a2, a3, a4, a5); if (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (r))) { __set_errno (-r); |