Cygwin: device_access_denied: return false if O_PATH is set

If O_PATH is set in the flags argument of
fhandler_base::device_access_denied, return false.  No
read/write/execute access should be required in this case.

Previously, the call to device_access_denied in open(2) would lead to
an attempt to open the file with read access even if the O_PATH flag
was set.
This commit is contained in:
Ken Brown 2020-01-23 16:31:04 +00:00 committed by Corinna Vinschen
parent 71091d165f
commit d880e97ec9
1 changed files with 3 additions and 0 deletions

View File

@ -335,6 +335,9 @@ fhandler_base::device_access_denied (int flags)
{
int mode = 0;
if (flags & O_PATH)
return false;
if (flags & O_RDWR)
mode |= R_OK | W_OK;
if (flags & (O_WRONLY | O_APPEND))