diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2022-06-12 13:46:52 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2022-06-12 13:47:12 -0700 |
commit | d682f8de7f9d384f4cfc482a3ba2960329a8db21 (patch) | |
tree | 65d04a8b5e462b2b4939b3addf0982de988a1bac /ChangeLog | |
parent | 2cd86e5891af0cdb7d88d076e9613e5c8475e1ee (diff) | |
download | gnulib-d682f8de7f9d384f4cfc482a3ba2960329a8db21.tar.gz |
fchmodat: port better to MS-Windows etc.
MS-Windows problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2022-06/msg00041.html
Although I don’t use MS-Windows I see some related fstatat etc.
problems and am trying to fix them with this further patch.
* lib/fchmodat.c (fchmodat):
* lib/lchmod.c (lchmod):
* lib/lchown.c (lchown)
[!HAVE_LCHOWN && HAVE_CHOWN && !CHOWN_MODIFIES_SYMLINK]:
* lib/renameatu.c (renameatu)
[HAVE_RENAME && RENAME_TRAILING_SLASH_SOURCE_BUG]:
Use readlinkat/readlink instead of fstatat/lstat to test merely
whether a string names a symlink, as this avoids problems
with EOVERFLOW. Also, I hope it works around the MS-Windows
issues that Bruno noted.
* m4/fchmodat.m4 (gl_PREREQ_FCHMODAT):
Check for readlinkat, not lchmod.
* m4/lchmod.m4 (gl_FUNC_LCHMOD): Do not require AC_CANONICAL_HOST
or check for lstat.
(gl_PREREQ_LCHMOD): Check for readlink.
* modules/lchown (Depends-on): Add readlink. Do not depend on
lstat merely because !HAVE_LCHOWN.
* modules/renameatu (Depends-on): Add fstatat, readlinkat.
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 26 |
1 files changed, 26 insertions, 0 deletions
@@ -1,3 +1,29 @@ +2022-06-12 Paul Eggert <eggert@cs.ucla.edu> + + fchmodat: port better to MS-Windows etc. + MS-Windows problem reported by Bruno Haible in: + https://lists.gnu.org/r/bug-gnulib/2022-06/msg00041.html + Although I don’t use MS-Windows I see some related fstatat etc. + problems and am trying to fix them with this further patch. + * lib/fchmodat.c (fchmodat): + * lib/lchmod.c (lchmod): + * lib/lchown.c (lchown) + [!HAVE_LCHOWN && HAVE_CHOWN && !CHOWN_MODIFIES_SYMLINK]: + * lib/renameatu.c (renameatu) + [HAVE_RENAME && RENAME_TRAILING_SLASH_SOURCE_BUG]: + Use readlinkat/readlink instead of fstatat/lstat to test merely + whether a string names a symlink, as this avoids problems + with EOVERFLOW. Also, I hope it works around the MS-Windows + issues that Bruno noted. + * m4/fchmodat.m4 (gl_PREREQ_FCHMODAT): + Check for readlinkat, not lchmod. + * m4/lchmod.m4 (gl_FUNC_LCHMOD): Do not require AC_CANONICAL_HOST + or check for lstat. + (gl_PREREQ_LCHMOD): Check for readlink. + * modules/lchown (Depends-on): Add readlink. Do not depend on + lstat merely because !HAVE_LCHOWN. + * modules/renameatu (Depends-on): Add fstatat, readlinkat. + 2022-06-12 Bruno Haible <bruno@clisp.org> doc: Update O_PATH platforms list. |