summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mysys/my_open.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/mysys/my_open.c b/mysys/my_open.c
index 21bdedddc48..71e243c0173 100644
--- a/mysys/my_open.c
+++ b/mysys/my_open.c
@@ -352,7 +352,12 @@ File my_sopen(const char *path, int oflag, int shflag, int pmode)
return -1; /* return error to caller */
}
- fh= _open_osfhandle((intptr_t)osfh, oflag & (_O_APPEND | _O_RDONLY | _O_TEXT));
+ if ((fh= _open_osfhandle((intptr_t)osfh,
+ oflag & (_O_APPEND | _O_RDONLY | _O_TEXT))) == -1)
+ {
+ _dosmaperr(GetLastError()); /* map error */
+ CloseHandle(osfh);
+ }
return fh; /* return handle */
}