From: Bram Moolenaar Date: Mon, 29 Jun 2020 19:32:06 +0000 (+0200) Subject: patch 8.2.1088: a very long translation might cause a buffer overflow X-Git-Tag: v8.2.1088 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6378b21d6dd38cc0f80aa6d31d747db6c287483b;p=vim patch 8.2.1088: a very long translation might cause a buffer overflow Problem: A very long translation might cause a buffer overflow. Solution: Trunctate the message if needed. --- diff --git a/src/fileio.c b/src/fileio.c index 395e54b6a..81a502665 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -52,10 +52,14 @@ filemess( if (msg_silent != 0) return; msg_add_fname(buf, name); // put file name in IObuff with quotes + // If it's extremely long, truncate it. - if (STRLEN(IObuff) > IOSIZE - 80) - IObuff[IOSIZE - 80] = NUL; - STRCAT(IObuff, s); + if (STRLEN(IObuff) > IOSIZE - 100) + IObuff[IOSIZE - 100] = NUL; + + // Avoid an over-long translation to cause trouble. + STRNCAT(IObuff, s, 99); + /* * For the first message may have to start a new line. * For further ones overwrite the previous one, reset msg_scroll before diff --git a/src/version.c b/src/version.c index f38c978b2..48ff321ca 100644 --- a/src/version.c +++ b/src/version.c @@ -754,6 +754,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1088, /**/ 1087, /**/