summaryrefslogtreecommitdiffstats
path: root/src/gui_gtk_x11.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-10-20 23:08:11 +0100
committerBram Moolenaar <Bram@vim.org>2021-10-20 23:08:11 +0100
commitd68a0044858d00de6100def1e389a3a9c1cdbcdc (patch)
tree8e87a146d0ee465a0cc97a519fd9b097539cd1ed /src/gui_gtk_x11.c
parent1d30fde3c989a962e0e1af4cbcf90e1ea483f1f4 (diff)
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.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c
index e107c5e060..d46f819073 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;