RFR: 8368522: (fs) BasicFileAttributes Linux musl 1.2.5 incompatibility with statx [v4]
Aleksei Voitylov
avoitylov at openjdk.org
Thu Oct 9 08:53:16 UTC 2025
> This cleanup replaces #ifdefs with a standard #include <stdint.h>. Using standard types is less prone to errors.
>
> JDK-8368522 was reported on ARM32 with musl libc, which is not a supported configuration, but I still believe this code cleanup is worth it.
>
> After the introduction of statx with musl 1.2.5, a buffer overflow issue with statx() call handling started happening on ARM32. The root cause is incorrect size of __uint64_t type definition in the JDK for musl libc, where it was defined as 4 bytes (unsigned long int) for 32-bit systems instead of 8 bytes (unsigned long long).
>
> The mismatch between JDK's my_statx structure and kernel's statx structure causes stack corruption when statx() writes beyond the statx_buf boundaries, overwriting adjacent variables, including the 'attrs' argument that was later passed to copy_statx_attributes() function and caused a segfault there.
>
> Built and ran jtreg on standard OpenJDK platforms with no regressions, including the altered test.
Aleksei Voitylov has updated the pull request incrementally with one additional commit since the last revision:
remove extra _
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/27674/files
- new: https://git.openjdk.org/jdk/pull/27674/files/e3b43e3b..d70adec1
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=27674&range=03
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=27674&range=02-03
Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
Patch: https://git.openjdk.org/jdk/pull/27674.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/27674/head:pull/27674
PR: https://git.openjdk.org/jdk/pull/27674
More information about the nio-dev
mailing list