summaryrefslogtreecommitdiffstats
path: root/grid.c
diff options
context:
space:
mode:
authornicm <nicm>2020-06-05 09:35:41 +0000
committernicm <nicm>2020-06-05 09:35:41 +0000
commit03b2998abe7712324a1a2ca254167dcc1ce28e4d (patch)
tree08fb47f36a04faa769a1b0638b05cfa9e519045b /grid.c
parentc908d2039f97a593fb25da22843c70517495da9b (diff)
Do not take the address of a potentially unaligned member.
Diffstat (limited to 'grid.c')
-rw-r--r--grid.c5
1 files changed, 4 insertions, 1 deletions
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;