mirror of
https://https.git.savannah.gnu.org/git/gnulib.git
synced 2026-05-13 15:13:36 +00:00
Prefer readlink to lstat+S_ISLNK when easy
To test for a symlink, use readlink, not lstat+S_ISLNK, when the lstat is used only for the symlink test. This avoids EOVERFLOW issues. * lib/lchown.c (rpl_lchown) [CHOWN_CHANGE_TIME_BUG]: * lib/rename.c (rpl_rename): [!(_WIN32 && !__CYGWIN__) && (RENAME_TRAILING_SLASH_SOURCE_BUG || RENAME_DEST_EXISTS_BUG || RENAME_HARD_LINK_BUG)]: * lib/renameatu.c (renameatu): [HAVE_RENAMEAT && RENAME_TRAILING_SLASH_SOURCE_BUG]: * lib/unlink.c (rpl_unlink): * lib/unlinkat.c (rpl_unlinkat): * lib/utimens.c (lutimens) [!HAVE_LUTIMENS]: Prefer readlink to lstat+S_ISLNK. * modules/lchown, modules/rename, modules/unlink, modules/utimens: (Depends-on): Add readlink. * modules/unlinkat (Depends-on): Add fstatat, readlinkat.
This commit is contained in:
@@ -7,7 +7,7 @@ m4/lchown.m4
|
||||
|
||||
Depends-on:
|
||||
unistd-h
|
||||
readlink [test $HAVE_LCHOWN = 0]
|
||||
readlink [test $HAVE_LCHOWN = 0 || test $REPLACE_LCHOWN = 1]
|
||||
chown [test $HAVE_LCHOWN = 0 || test $REPLACE_LCHOWN = 1]
|
||||
errno-h [test $HAVE_LCHOWN = 0 || test $REPLACE_LCHOWN = 1]
|
||||
bool [test $HAVE_LCHOWN = 0 || test $REPLACE_LCHOWN = 1]
|
||||
|
||||
@@ -12,6 +12,7 @@ chdir [test $REPLACE_RENAME = 1]
|
||||
dirname-lgpl [test $REPLACE_RENAME = 1]
|
||||
free-posix [test $REPLACE_RENAME = 1]
|
||||
lstat [test $REPLACE_RENAME = 1]
|
||||
readlink [test $REPLACE_RENAME = 1]
|
||||
rmdir [test $REPLACE_RENAME = 1]
|
||||
same-inode [test $REPLACE_RENAME = 1]
|
||||
stat [test $REPLACE_RENAME = 1]
|
||||
|
||||
@@ -10,6 +10,7 @@ unistd-h
|
||||
filename [test $REPLACE_UNLINK = 1]
|
||||
lstat [test $REPLACE_UNLINK = 1]
|
||||
malloc-posix [test $REPLACE_UNLINK = 1]
|
||||
readlink [test $REPLACE_UNLINK = 1]
|
||||
|
||||
configure.ac:
|
||||
gl_FUNC_UNLINK
|
||||
|
||||
@@ -21,6 +21,8 @@ openat-die [test $HAVE_UNLINKAT = 0]
|
||||
rmdir [test $HAVE_UNLINKAT = 0]
|
||||
save-cwd [test $HAVE_UNLINKAT = 0]
|
||||
unlink [test $HAVE_UNLINKAT = 0]
|
||||
fstatat [test $REPLACE_UNLINKAT = 1]
|
||||
readlinkat [test $REPLACE_UNLINKAT = 1]
|
||||
|
||||
configure.ac:
|
||||
gl_FUNC_UNLINKAT
|
||||
|
||||
@@ -15,6 +15,7 @@ fstat
|
||||
lstat
|
||||
gettime
|
||||
msvc-nothrow
|
||||
readlink
|
||||
stat
|
||||
stat-time
|
||||
bool
|
||||
|
||||
Reference in New Issue
Block a user