summaryrefslogtreecommitdiff
path: root/src/dispnew.c
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@linux-m68k.org>2021-11-29 10:29:40 +0100
committerEli Zaretskii <eliz@gnu.org>2021-11-29 14:45:40 +0200
commitde9d27f679d5e040c0ed4b974bc9225f6a330852 (patch)
treefaa6d8285a9561987b6d701474d03984fc414484 /src/dispnew.c
parentc4daff9cf844ec85930bdcd2064787c92c260861 (diff)
downloademacs-de9d27f679d5e040c0ed4b974bc9225f6a330852.tar.gz
Avoid undefined behaviour when copying part of structure
* src/dispnew.c (copy_row_except_pointers): Don't use address of subobject as starting point. (cherry picked from commit 6943786b5c1fe76ea05a3a810512bd6777883710)
Diffstat (limited to 'src/dispnew.c')
-rw-r--r--src/dispnew.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/dispnew.c b/src/dispnew.c
index 53eb8984747..4a9f2bae44b 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -1034,7 +1034,7 @@ copy_row_except_pointers (struct glyph_row *to, struct glyph_row *from)
{
enum { off = offsetof (struct glyph_row, x) };
- memcpy (&to->x, &from->x, sizeof *to - off);
+ memcpy ((char *) to + off, (char *) from + off, sizeof *to - off);
}