diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-10-20 23:08:11 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-10-20 23:08:11 +0100 |
commit | d68a0044858d00de6100def1e389a3a9c1cdbcdc (patch) | |
tree | 8e87a146d0ee465a0cc97a519fd9b097539cd1ed /src/gui_gtk_x11.c | |
parent | 1d30fde3c989a962e0e1af4cbcf90e1ea483f1f4 (diff) | |
download | vim-git-d68a0044858d00de6100def1e389a3a9c1cdbcdc.tar.gz |
patch 8.2.3548: GTK GUI crashen when reading from stdinv8.2.3548
Problem: GTK GUI crashen when reading from stdin.
Solution: Do not overwrite the NUL after the string. (closes #9028)
Diffstat (limited to 'src/gui_gtk_x11.c')
-rw-r--r-- | src/gui_gtk_x11.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c index e107c5e06..d46f81907 100644 --- a/src/gui_gtk_x11.c +++ b/src/gui_gtk_x11.c @@ -5744,12 +5744,16 @@ gui_gtk2_draw_string(int row, int col, char_u *s, int len, int flags) } } - // temporarily zero terminate substring, print, restore char, wrap - backup_ch = *(cs + slen); - *(cs + slen) = 0; + if (slen < len) + { + // temporarily zero terminate substring, print, restore char, wrap + backup_ch = *(cs + slen); + *(cs + slen) = NUL; + } len_sum += gui_gtk2_draw_string_ext(row, col + len_sum, cs, slen, flags, needs_pango); - *(cs + slen) = backup_ch; + if (slen < len) + *(cs + slen) = backup_ch; cs += slen; byte_sum += slen; needs_pango = should_need_pango; |