summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/os_win32.c14
-rw-r--r--src/version.c2
2 files changed, 16 insertions, 0 deletions
diff --git a/src/os_win32.c b/src/os_win32.c
index c03b963c4..fcfafa01e 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -6139,6 +6139,13 @@ mch_open(char *name, int flags, int mode)
}
# endif
+ /* open() can open a file which name is longer than _MAX_PATH bytes
+ * and shorter than _MAX_PATH characters successfully, but sometimes it
+ * causes unexpected error in another part. We make it an error explicitly
+ * here. */
+ if (strlen(name) >= _MAX_PATH)
+ return -1;
+
return open(name, flags, mode);
}
@@ -6188,6 +6195,13 @@ mch_fopen(char *name, char *mode)
* the _wfopen() fails for missing wide functions. */
}
+ /* fopen() can open a file which name is longer than _MAX_PATH bytes
+ * and shorter than _MAX_PATH characters successfully, but sometimes it
+ * causes unexpected error in another part. We make it an error explicitly
+ * here. */
+ if (strlen(name) >= _MAX_PATH)
+ return NULL;
+
return fopen(name, mode);
}
#endif
diff --git a/src/version.c b/src/version.c
index 4bbc22155..178a7845f 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 505,
+/**/
504,
/**/
503,