changeset 10053:48bfcbd671a9

Make chdir-safer.c slightly safer. * lib/chdir-safer.c (chdir_no_follow): Test HAVE_WORKING_O_NOFOLLOW, not O_NOFOLLOW, in case the latter is nonzero and open ignores it.
author Jim Meyering <meyering@redhat.com>
date Sat, 10 May 2008 15:15:11 +0200
parents cfa44ca8e7ba
children 9612e33b3129
files ChangeLog lib/chdir-safer.c
diffstat 2 files changed, 5 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Sat May 10 14:50:12 2008 +0200
+++ b/ChangeLog	Sat May 10 15:15:11 2008 +0200
@@ -1,5 +1,9 @@
 2008-05-10  Jim Meyering  <meyering@redhat.com>
 
+	Make chdir-safer.c slightly safer.
+	* lib/chdir-safer.c (chdir_no_follow): Test HAVE_WORKING_O_NOFOLLOW,
+	not O_NOFOLLOW, in case the latter is nonzero and open ignores it.
+
 	Avoid compile failure on systems without ELOOP (like mingw).
 	* lib/chdir-safer.c (ELOOP): Define if not already defined.
 	Reported by Bruno Haible.
--- a/lib/chdir-safer.c	Sat May 10 14:50:12 2008 +0200
+++ b/lib/chdir-safer.c	Sat May 10 15:15:11 2008 +0200
@@ -51,7 +51,7 @@
      they are the same file; if they are different files, set errno to
      ELOOP (the same value that open uses for symlinks with
      O_NOFOLLOW) so the caller can report a failure.  */
-  if (! O_NOFOLLOW)
+  if (! HAVE_WORKING_O_NOFOLLOW)
     {
       struct stat sb1;
       result = lstat (dir, &sb1);