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 @@ -764,6 +764,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 526, /**/ 525, /**/