summaryrefslogtreecommitdiffstats
path: root/src/fileio.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-06-29 21:32:06 +0200
committerBram Moolenaar <Bram@vim.org>2020-06-29 21:32:06 +0200
commit6378b21d6dd38cc0f80aa6d31d747db6c287483b (patch)
treec9d1a746efb71afc61d8dc4a03db7c8e9d36e5a4 /src/fileio.c
parent566cc8c72bb8036f015a435800f28ef9f6a9a3b6 (diff)
patch 8.2.1088: a very long translation might cause a buffer overflowv8.2.1088
Problem: A very long translation might cause a buffer overflow. Solution: Trunctate the message if needed.
Diffstat (limited to 'src/fileio.c')
-rw-r--r--src/fileio.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/fileio.c b/src/fileio.c
index 395e54b6a4..81a5026652 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