From 354d47ae5bc4edcc94db4a5391ed71a8b9844e57 Mon Sep 17 00:00:00 2001 From: Aleksey Maximov Date: Sun, 14 Sep 2025 12:30:09 +0000 Subject: IBF: Avoid unaligned load on 32 bit platforms [Bug #21569] --- compile.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/compile.c b/compile.c index d3b9704cc9..bb7f974b6b 100644 --- a/compile.c +++ b/compile.c @@ -14097,8 +14097,10 @@ ibf_dump_object_float(struct ibf_dump *dump, VALUE obj) static VALUE ibf_load_object_float(const struct ibf_load *load, const struct ibf_object_header *header, ibf_offset_t offset) { - const double *dblp = IBF_OBJBODY(double, offset); - return DBL2NUM(*dblp); + double d; + /* Avoid unaligned VFP load on ARMv7; IBF payload may be unaligned (C99 6.3.2.3 p7). */ + memcpy(&d, IBF_OBJBODY(double, offset), sizeof(d)); + return DBL2NUM(d); } static void -- cgit v1.2.3