Mercurial > vim
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