diff options
-rw-r--r-- | src/os_unix.c | 10 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/os_unix.c b/src/os_unix.c index c78e7bf96..8ed3a67f8 100644 --- a/src/os_unix.c +++ b/src/os_unix.c @@ -6006,6 +6006,7 @@ mch_expand_wildcards( { int i; size_t len; + long llen; char_u *p; int dir; @@ -6292,9 +6293,13 @@ mch_expand_wildcards( goto notfound; } fseek(fd, 0L, SEEK_END); - len = ftell(fd); /* get size of temp file */ + llen = ftell(fd); /* get size of temp file */ fseek(fd, 0L, SEEK_SET); - buffer = alloc(len + 1); + if (llen < 0) + /* just in case ftell() would fail */ + buffer = NULL; + else + buffer = alloc(llen + 1); if (buffer == NULL) { /* out of memory */ @@ -6303,6 +6308,7 @@ mch_expand_wildcards( fclose(fd); return FAIL; } + len = llen; i = fread((char *)buffer, 1, len, fd); fclose(fd); mch_remove(tempname); diff --git a/src/version.c b/src/version.c index ba3aefc3c..436b2a184 100644 --- a/src/version.c +++ b/src/version.c @@ -765,6 +765,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 526, +/**/ 525, /**/ 524, |