summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/i386/syscall.h2
-rw-r--r--src/misc/getrlimit.c6
2 files changed, 5 insertions, 3 deletions
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;
}