comparison src/fileio.c @ 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 69055d27e85e
children 9f9c26b3ddc5
comparison
equal deleted inserted replaced
21072:42e2fb7ec6e1 21073:334a8a5a6267
50 int prev_msg_col = msg_col; 50 int prev_msg_col = msg_col;
51 51
52 if (msg_silent != 0) 52 if (msg_silent != 0)
53 return; 53 return;
54 msg_add_fname(buf, name); // put file name in IObuff with quotes 54 msg_add_fname(buf, name); // put file name in IObuff with quotes
55
55 // If it's extremely long, truncate it. 56 // If it's extremely long, truncate it.
56 if (STRLEN(IObuff) > IOSIZE - 80) 57 if (STRLEN(IObuff) > IOSIZE - 100)
57 IObuff[IOSIZE - 80] = NUL; 58 IObuff[IOSIZE - 100] = NUL;
58 STRCAT(IObuff, s); 59
60 // Avoid an over-long translation to cause trouble.
61 STRNCAT(IObuff, s, 99);
62
59 /* 63 /*
60 * For the first message may have to start a new line. 64 * For the first message may have to start a new line.
61 * For further ones overwrite the previous one, reset msg_scroll before 65 * For further ones overwrite the previous one, reset msg_scroll before
62 * calling filemess(). 66 * calling filemess().
63 */ 67 */