The faccessat (..., AT_EACCESS) on Linux fallback will either use __NR_faccessat for __libc_enable_secure or LFS fstatat call. Neither fallbacks returns EOVERFLOW in failure case.
Checked on x86_64-linux-gnu. --- stdlib/canonicalize.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/stdlib/canonicalize.c b/stdlib/canonicalize.c index 69f978da78..5aac8d457c 100644 --- a/stdlib/canonicalize.c +++ b/stdlib/canonicalize.c @@ -44,15 +44,10 @@ #ifdef _LIBC # include <shlib-compat.h> -# include <sysdep.h> -# ifdef __ASSUME_FACCESSAT2 -# define FACCESSAT_NEVER_EOVERFLOWS __ASSUME_FACCESSAT2 -# else -# define FACCESSAT_NEVER_EOVERFLOWS true -# endif # define GCC_LINT 1 # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) # define FUNC_REALPATH_WORKS 1 +# define FACCESSAT_NEVER_EOVERFLOWS true #else # define __canonicalize_file_name canonicalize_file_name # define __realpath realpath @@ -82,7 +77,7 @@ # define __pathconf pathconf # define __rawmemchr rawmemchr # define __readlink readlink -# define __stat stat +# define FACCESSAT_NEVER_EOVERFLOWS false #endif /* Suppress bogus GCC -Wmaybe-uninitialized warnings. */ @@ -95,9 +90,6 @@ #ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT # define DOUBLE_SLASH_IS_DISTINCT_ROOT false #endif -#ifndef FACCESSAT_NEVER_EOVERFLOWS -# define FACCESSAT_NEVER_EOVERFLOWS false -#endif #if !FUNC_REALPATH_WORKS || defined _LIBC -- 2.25.1