comparison 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
comparison
equal deleted inserted replaced
21605:e2e607fac96b 21606:66618893eb2a
184 } 184 }
185 if(i < VTERM_MAX_CHARS_PER_CELL) 185 if(i < VTERM_MAX_CHARS_PER_CELL)
186 cell->chars[i] = 0; 186 cell->chars[i] = 0;
187 187
188 for(col = 1; col < info->width; col++) 188 for(col = 1; col < info->width; col++)
189 getcell(screen, pos.row, pos.col + col)->chars[0] = (uint32_t)-1; 189 {
190 ScreenCell *onecell = getcell(screen, pos.row, pos.col + col);
191 if (onecell == NULL)
192 break;
193 onecell->chars[0] = (uint32_t)-1;
194 }
190 195
191 rect.start_row = pos.row; 196 rect.start_row = pos.row;
192 rect.end_row = pos.row+1; 197 rect.end_row = pos.row+1;
193 rect.start_col = pos.col; 198 rect.start_col = pos.col;
194 rect.end_col = pos.col+info->width; 199 rect.end_col = pos.col+info->width;