From 5b66f060813b0b6042c0814ec1ab06e65f775063 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Sat, 10 May 2008 15:15:11 +0200 Subject: [PATCH] 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. --- ChangeLog | 4 ++++ lib/chdir-safer.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 94fbdc1ee..67653c119 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2008-05-10 Jim Meyering + 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. diff --git a/lib/chdir-safer.c b/lib/chdir-safer.c index 0df0b9da1..a5c9a4d12 100644 --- a/lib/chdir-safer.c +++ b/lib/chdir-safer.c @@ -51,7 +51,7 @@ chdir_no_follow (char const *dir) 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); -- 2.11.0