changeset 21073:334a8a5a6267 v8.2.1088

patch 8.2.1088: a very long translation might cause a buffer overflow Commit: https://github.com/vim/vim/commit/6378b21d6dd38cc0f80aa6d31d747db6c287483b Author: Bram Moolenaar <Bram@vim.org> Date: Mon Jun 29 21:32:06 2020 +0200 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.
author Bram Moolenaar <Bram@vim.org>
date Mon, 29 Jun 2020 21:45:04 +0200
parents 42e2fb7ec6e1
children 3052a76c1a59
files src/fileio.c src/version.c
diffstat 2 files changed, 9 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- 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
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1088,
+/**/
     1087,
 /**/
     1086,