X-Git-Url: https://git.cworth.org/git?p=tar;a=blobdiff_plain;f=gnu%2Fopen.c;fp=gnu%2Fopen.c;h=1d066962aa31e8791a48f87be8a01263a045f93b;hp=7c2bbb81d975266bc34162f1a494a35f55524b67;hb=b414e25de8ca49d7567a92c203d431383ec57c83;hpb=29ece34f44a27750bbfd76154ad9882580453dc7 diff --git a/gnu/open.c b/gnu/open.c index 7c2bbb8..1d06696 100644 --- a/gnu/open.c +++ b/gnu/open.c @@ -113,7 +113,8 @@ open (const char *filename, int flags, ...) override fstat() in fchdir.c to hide the fact that we have a dummy. */ if (REPLACE_OPEN_DIRECTORY && fd < 0 && errno == EACCES - && (flags & O_ACCMODE) == O_RDONLY) + && ((flags & O_ACCMODE) == O_RDONLY + || (O_SEARCH != O_RDONLY && (flags & O_ACCMODE) == O_SEARCH))) { struct stat statbuf; if (stat (filename, &statbuf) == 0 && S_ISDIR (statbuf.st_mode))