Re: [PATCH 3/8] faccessat: support "" and NULL file

Paul Eggert <[email protected]>
Newsgroups gmane.comp.lib.gnulib.bugs
Organization UCLA Computer Science Department
Message-ID <[email protected]>
On 2026-06-16 11:36, Bruno Haible wrote:
> If HAVE_FACCESSAT is 1 and LSTAT_FOLLOWS_SLASHED_SYMLINK is not 1,
> Gnulib does not define rpl_faccessat.

Thanks, I installed the attached, cheating a bit by editing the recent 
ChangeLog entry rather than writing a new one.
0001-faccessat-simplify-latest-change.patch (text/x-patch, 1.9 KB)
From e4f006251579379a510e5c09d3def6a435807cca Mon Sep 17 00:00:00 2001
From: Paul Eggert <[email protected]>
Date: Tue, 16 Jun 2026 12:08:19 -0700
Subject: [PATCH] faccessat: simplify latest change
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Suggested by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2026-06/msg00065.html
* lib/faccessat.c (LSTAT_FOLLOWS_SLASHED_SYMLINK): Remove.
(rpl_faccessat): Assume it’s false.
---
 ChangeLog       | 7 +++----
 lib/faccessat.c | 6 +-----
 2 files changed, 4 insertions(+), 9 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 5bf7f08c52..a3096cefeb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -37,10 +37,9 @@
 	New macro.  Needed for Solaris 10.
 
 	faccessat: support "" and NULL file
-	* lib/faccessat.c (LSTAT_FOLLOWS_SLASHED_SYMLINK): Default to 0.
-	(rpl_faccessat): Don’t mishandle empty string, or null pointer for
-	that matter.  Also, do not call fstatat if
-	LSTAT_FOLLOWS_SLASHED_SYMLINK, as there is no need in that case.
+	* lib/faccessat.c (rpl_faccessat): Don’t mishandle empty string,
+	or null pointer for that matter.  (Thanks to Bruno Haible for
+	reviewing and suggesting a simplification.)
 
 	fcntl-h: glibc now has openat2
 	* m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): HAVE_OPENAT2 is now 1,
diff --git a/lib/faccessat.c b/lib/faccessat.c
index ad5720236b..c1463aa70e 100644
--- a/lib/faccessat.c
+++ b/lib/faccessat.c
@@ -50,10 +50,6 @@ orig_faccessat (int fd, char const *name, int mode, int flag)
 # define access euidaccess
 #endif
 
-#ifndef LSTAT_FOLLOWS_SLASHED_SYMLINK
-# define LSTAT_FOLLOWS_SLASHED_SYMLINK 0
-#endif
-
 #if HAVE_FACCESSAT
 
 int
@@ -61,7 +57,7 @@ rpl_faccessat (int fd, char const *file, int mode, int flags)
 {
   int result = orig_faccessat (fd, file, mode, flags);
 
-  if (!LSTAT_FOLLOWS_SLASHED_SYMLINK && file)
+  if (file)
     {
       size_t len = strlen (file);
       if (len && file[len - 1] == '/')
-- 
2.53.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.