From: Xing Li Date: Tue, 29 Nov 2022 11:24:43 +0000 (+0800) Subject: linux: Use long int for syscall return value X-Git-Tag: glibc-2.37~119 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=36d423e2032e98305799071b831691fc4c06deea;p=thirdparty%2Fglibc.git 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 --- diff --git a/sysdeps/unix/sysv/linux/syscall.c b/sysdeps/unix/sysv/linux/syscall.c index 7303ba71888..8cb0b66b1ca 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);