diff options
-rw-r--r-- | winsup/cygwin/ChangeLog | 4 | ||||
-rw-r--r-- | winsup/cygwin/syscalls.cc | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 3b685861f..048b3c25c 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,7 @@ +2013-05-21 Corinna Vinschen <corinna@vinschen.de> + + * syscalls.cc (open): Only return ENOTDIR if file exists. + 2013-05-16 Christopher Faylor <me.cygwin2013@cgf.cx> * sigproc.cc (sig_hold): Delete. diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc index a8ca9efab..e1886e617 100644 --- a/winsup/cygwin/syscalls.cc +++ b/winsup/cygwin/syscalls.cc @@ -1360,7 +1360,7 @@ open (const char *unix_path, int flags, ...) res = -1; set_errno (ELOOP); } - else if ((flags & O_DIRECTORY) && !fh->pc.isdir ()) + else if ((flags & O_DIRECTORY) && fh->exists () && !fh->pc.isdir ()) { delete fh; res = -1; |