diff options
author | Pavel Kozlov <pavel.kozlov@synopsys.com> | 2023-11-17 12:57:31 +0400 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2023-11-17 10:02:56 +0100 |
commit | d2c58318e70eaac636e83e718e389603dde85eac (patch) | |
tree | 4e314a963d4c6afbb2e414a75c5c7fa1057dc011 /libc/misc/search/hsearch_r.c | |
parent | bfd61a8043511696de226e647951d09deaa95689 (diff) |
rlimit: fix 64-bit RLIM64_INFINITY macro
Linux kernel returns -1ULL as RLIM64_INFINITY for all cpus.
Fix RLIM64_INFINTIY and 64-bit variant of RLIM_INFINITY macro for
sparc, mips, alpha, as for these CPUs the library uses different
value than what the kernel sets and it can cause incorrect
RLIM64_INFINTY check.
Because alpha is a 64-bit arch, fix the RLIM_INFINITY macro twice
(the value should be the same with and without __USE_FILE_OFFSET64
definition) to match the prlimit64 syscall in the kernel.
Previous implementation of setrlimit/getrlimit functions didn't use
prlimit64 syscall and didn't receive RLIM64_INFINTIY from the kernel,
RLIM64_INFINTY macro was used by the library itself to mimic the
64-bit rlimit in the getrlimit64/setrlimit64 functions, that allowed
to have RLIM64_INFINTIY different from what the kernel sets.
New implementation of setrlimit/getrlimit uses prlimit64 and checks
for RLIM64_INFINITY value and must have equal RLIM64_INFINITY
definition with what the kernel uses.
This issue is indicated by the tst-rlim/tst-rlim64 tests
on sparc/mips32/alpha, tests return 23 (UNSUPPORTED) because of
incorrect RLIM_INFINTY check for available rlimit type.
This patch will require rebuild of sparc/mips32/alpha binaries that
explicitly use RLIM64_INFINTY or 64-bit variant of RLIM_INFINITY
(if binary for 32-bit CPU was built with _FILE_OFFSET_BITS=64) to
update the macro value.
Signed-off-by: Pavel Kozlov <pavel.kozlov@synopsys.com>
Diffstat (limited to 'libc/misc/search/hsearch_r.c')
0 files changed, 0 insertions, 0 deletions