Mercurial > vim
diff src/libvterm/src/screen.c @ 21606:66618893eb2a v8.2.1353
patch 8.2.1353: crash when drawing double-wide character in terminal window
Commit: https://github.com/vim/vim/commit/8b89614e69b9b2330539d0482e44f4724053e780
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Aug 2 15:05:05 2020 +0200
patch 8.2.1353: crash when drawing double-wide character in terminal window
Problem: Crash when drawing double-wide character in terminal window.
(Masato Nishihata)
Solution: Check getcell() returning NULL. (issue #6141)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 02 Aug 2020 15:15:03 +0200 |
parents | 2f2bc98a8dfb |
children | 2d2758ffd959 |
line wrap: on
line diff
--- a/src/libvterm/src/screen.c +++ b/src/libvterm/src/screen.c @@ -186,7 +186,12 @@ static int putglyph(VTermGlyphInfo *info cell->chars[i] = 0; for(col = 1; col < info->width; col++) - getcell(screen, pos.row, pos.col + col)->chars[0] = (uint32_t)-1; + { + ScreenCell *onecell = getcell(screen, pos.row, pos.col + col); + if (onecell == NULL) + break; + onecell->chars[0] = (uint32_t)-1; + } rect.start_row = pos.row; rect.end_row = pos.row+1;