From 29eacf8ce0ec56d4b4a8b03fb6a921b4843a9ee3 Mon Sep 17 00:00:00 2001 From: Ron Yorston Date: Fri, 29 May 2015 15:02:51 +0100 Subject: mingw: fix conditions under which open(2) sets errno to EISDIR --- win32/mingw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/win32/mingw.c b/win32/mingw.c index 03d4fbad4..824413586 100644 --- a/win32/mingw.c +++ b/win32/mingw.c @@ -155,7 +155,7 @@ int mingw_open (const char *filename, int oflags, ...) if (filename && !strcmp(filename, "/dev/null")) filename = "nul"; fd = open(filename, oflags, mode); - if (fd < 0 && (oflags & O_CREAT) && errno == EACCES) { + if (fd < 0 && (oflags & O_ACCMODE) != O_RDONLY && errno == EACCES) { DWORD attrs = GetFileAttributes(filename); if (attrs != INVALID_FILE_ATTRIBUTES && (attrs & FILE_ATTRIBUTE_DIRECTORY)) errno = EISDIR; -- cgit v1.2.3-55-g6feb