Skip to content

Commit 9ff0a44

Browse files
[libc] Fix setrlimit/getrlimit on 32-bit systems
libc uses SYS_prlimit64 (which takes a struct rlimit64) to implement setrlimt and getrlimit (which take a struct rlimit). In 64-bit bits systems this is not an issue since the members of struct rlimit64 and struct rlimit are 64 bits long, however, in 32-bit systems the members of struct rlimit are only 32 bits long, causing wrong values being passed to SYS_prlimit64. This patch changes rlim_t to be __UINT64_TYPE__ (which also changes rlimit as a side-effect), fixing the problem of mismatching types in the syscall. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D159104
1 parent 063524e commit 9ff0a44

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

libc/include/llvm-libc-types/rlim_t.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@
99
#ifndef __LLVM_LIBC_TYPES_RLIM_T_H__
1010
#define __LLVM_LIBC_TYPES_RLIM_T_H__
1111

12-
typedef unsigned long rlim_t;
12+
typedef __UINT64_TYPE__ rlim_t;
1313

1414
#endif // __LLVM_LIBC_TYPES_RLIM_T_H__

0 commit comments

Comments
 (0)