From 1838870ccb054ffad8f8685fd49c2100f8d3d7b9 Mon Sep 17 00:00:00 2001 From: Bjorn Winckler Date: Sat, 11 Oct 2008 20:03:23 +0200 Subject: [PATCH] Avoid crash when resizing window Sanity check input to gui_macvim_draw_string(); it can happen that 'len' is non-zero even though first byte of 's' is NUL (test case with file containing Chinese characters). --- src/MacVim/gui_macvim.m | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/MacVim/gui_macvim.m b/src/MacVim/gui_macvim.m index 6fd98048..a54d35e0 100644 --- a/src/MacVim/gui_macvim.m +++ b/src/MacVim/gui_macvim.m @@ -323,8 +323,10 @@ gui_macvim_draw_string(int row, int col, char_u *s, int len, int flags) // wide and vice versa. for (i = 0; i < len; i += cl) { c = utf_ptr2char(s + i); - cl = utf_ptr2len(s + i); cn = utf_char2cells(c); + cl = utf_ptr2len(s + i); + if (0 == cl) + len = i; // len must be wrong (shouldn't happen) if (!utf_iscomposing(c)) { if ((cn > 1 && !wide) || (cn <= 1 && wide)) { -- 2.11.4.GIT