diff options
-rw-r--r-- | src/os_win32.c | 14 | ||||
-rw-r--r-- | src/version.c | 2 |
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, |