From: Rich Felker Date: Tue, 15 Feb 2011 10:42:27 +0000 (-0500) Subject: fix getrlimit handling on 32-bit systems, and ease porting to 64-bit X-Git-Tag: v0.6.0~36 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=f7eb91e7952553dc24a734030a6c78f8dc6ed455;p=oweals%2Fmusl.git fix getrlimit handling on 32-bit systems, and ease porting to 64-bit --- diff --git a/arch/i386/syscall.h b/arch/i386/syscall.h index fcdae241..8df9b1b9 100644 --- a/arch/i386/syscall.h +++ b/arch/i386/syscall.h @@ -500,6 +500,8 @@ static inline long syscall6(long n, long a1, long a2, long a3, long a4, long a5, #define __NR_fstatat __NR_fstatat64 #define __NR_pread __NR_pread64 #define __NR_pwrite __NR_pwrite64 +#undef __NR_getrlimit +#define __NR_getrlimit __NR_ugetrlimit #define __SC_socket 1 #define __SC_bind 2 diff --git a/src/misc/getrlimit.c b/src/misc/getrlimit.c index db25943b..84a659d4 100644 --- a/src/misc/getrlimit.c +++ b/src/misc/getrlimit.c @@ -5,10 +5,10 @@ int getrlimit(int resource, struct rlimit *rlim) { long k_rlim[2]; - if (syscall2(__NR_ugetrlimit, resource, (long)k_rlim) < 0) + if (syscall2(__NR_getrlimit, resource, (long)k_rlim) < 0) return -1; - rlim->rlim_cur = k_rlim[0]; - rlim->rlim_max = k_rlim[1]; + rlim->rlim_cur = k_rlim[0] == -1 ? -1 : (unsigned long)k_rlim[0]; + rlim->rlim_max = k_rlim[1] == -1 ? -1 : (unsigned long)k_rlim[1]; return 0; }