diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index ee4695d59..7689bb739 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2008-03-06 Corinna Vinschen + + * fhandler.cc (fhandler_base::open_): Add missing test for O_CREAT. + Fix comment. + 2008-03-05 Corinna Vinschen * child_info.h (~child_info_spawn): Check moreinfo->myself_pinfo for diff --git a/winsup/cygwin/fhandler.cc b/winsup/cygwin/fhandler.cc index 98c48064d..eded21ee8 100644 --- a/winsup/cygwin/fhandler.cc +++ b/winsup/cygwin/fhandler.cc @@ -592,7 +592,7 @@ fhandler_base::open (int flags, mode_t mode) { /* Trying to create a directory should return EISDIR, not ENOENT. */ PUNICODE_STRING upath = pc.get_nt_native_path (); - if (status == STATUS_OBJECT_NAME_INVALID + if (status == STATUS_OBJECT_NAME_INVALID && (flags & O_CREAT) && upath->Buffer[upath->Length / sizeof (WCHAR) - 1] == '\\') set_errno (EISDIR); else