From 54ed08c24ef7a5728c29f2ff8fa85487647badd4 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 4 Mar 2018 23:36:39 +0530 Subject: [PATCH] Ensure the extra glyphs array is always re-initialized --- kitty/fonts.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kitty/fonts.c b/kitty/fonts.c index b831c73ea..fb93f29ca 100644 --- a/kitty/fonts.c +++ b/kitty/fonts.c @@ -815,7 +815,10 @@ render_groups(Font *font) { /* printf("Group: idx: %u num_cells: %u num_glyphs: %u first_glyph_idx: %u first_cell_idx: %u total_num_glyphs: %zu\n", */ /* idx, group->num_cells, group->num_glyphs, group->first_glyph_idx, group->first_cell_idx, group_state.num_glyphs); */ glyph_index primary = group->num_glyphs ? G(info)[group->first_glyph_idx].codepoint : 0; - for (unsigned i = 1; i < MIN(arraysz(ed.data) + 1, group->num_glyphs); i++) ed.data[i-1] = G(info)[group->first_glyph_idx + i].codepoint; + unsigned int i; + int last = -1; + for (i = 1; i < MIN(arraysz(ed.data) + 1, group->num_glyphs); i++) { last = i - 1; ed.data[last] = G(info)[group->first_glyph_idx + i].codepoint; } + if ((size_t)(last + 1) < arraysz(ed.data)) ed.data[last + 1] = 0; render_group(group->num_cells, group->num_glyphs, G(first_cell) + group->first_cell_idx, G(info) + group->first_glyph_idx, G(positions) + group->first_glyph_idx, font, primary, &ed); idx++; }