From 03b2998abe7712324a1a2ca254167dcc1ce28e4d Mon Sep 17 00:00:00 2001 From: nicm Date: Fri, 5 Jun 2020 09:35:41 +0000 Subject: [PATCH] Do not take the address of a potentially unaligned member. --- grid.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/grid.c b/grid.c index 0c837748..5ea5bf62 100644 --- a/grid.c +++ b/grid.c @@ -114,6 +114,7 @@ grid_extended_cell(struct grid_line *gl, struct grid_cell_entry *gce, { struct grid_extd_entry *gee; int flags = (gc->flags & ~GRID_FLAG_CLEARED); + utf8_char uc; if (~gce->flags & GRID_FLAG_EXTENDED) grid_get_extended_cell(gl, gce, flags); @@ -121,8 +122,10 @@ grid_extended_cell(struct grid_line *gl, struct grid_cell_entry *gce, fatalx("offset too big"); gl->flags |= GRID_LINE_EXTENDED; + utf8_from_data(&gc->data, &uc); + gee = &gl->extddata[gce->offset]; - utf8_from_data(&gc->data, &gee->data); + gee->data = uc; gee->attr = gc->attr; gee->flags = flags; gee->fg = gc->fg;