From: Bram Moolenaar Date: Mon, 15 May 2017 06:45:13 +0000 (+0200) Subject: patch 8.0.0597: off-by-one error in size computation X-Git-Tag: v8.0.0597 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=253f9128779f315ea670f9b4a17446b7b4c74927;p=vim patch 8.0.0597: off-by-one error in size computation Problem: Off-by-one error in buffer size computation. Solution: Use ">=" instead of ">". (Lemonboy, closes #1694) --- diff --git a/src/quickfix.c b/src/quickfix.c index 7b07f9358..9626cfa43 100644 --- a/src/quickfix.c +++ b/src/quickfix.c @@ -919,7 +919,7 @@ restofline: } if (fmt_ptr->flags == '+' && !qi->qf_multiscan) /* %+ */ { - if (linelen > fields->errmsglen) + if (linelen >= fields->errmsglen) { /* linelen + null terminator */ if ((fields->errmsg = vim_realloc(fields->errmsg, @@ -934,7 +934,7 @@ restofline: if (regmatch.startp[i] == NULL || regmatch.endp[i] == NULL) continue; len = (int)(regmatch.endp[i] - regmatch.startp[i]); - if (len > fields->errmsglen) + if (len >= fields->errmsglen) { /* len + null terminator */ if ((fields->errmsg = vim_realloc(fields->errmsg, len + 1)) @@ -1017,7 +1017,7 @@ restofline: fields->namebuf[0] = NUL; /* no match found, remove file name */ fields->lnum = 0; /* don't jump to this line */ fields->valid = FALSE; - if (linelen > fields->errmsglen) + if (linelen >= fields->errmsglen) { /* linelen + null terminator */ if ((fields->errmsg = vim_realloc(fields->errmsg, diff --git a/src/version.c b/src/version.c index f31a946dc..dd39fcdac 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 */ +/**/ + 597, /**/ 596, /**/