Commit 256875a56 for clamav.net

commit 256875a5638ee80ddec8a77ab791143b77f87e26
Author: Val S. <valsnyde@cisco.com>
Date:   Mon Mar 2 16:30:58 2026 -0500

    Fix pointer alignment issue in OLE2 XLM macro extraction (#1677)

    Fix issue reading from a pointer which can cause a crash on systems that
    have strict pointer alignment requirements.

    Thank you to Hsuan-Ming Chen at Synology PSIRT for identify this issue
    and proposing this fix.

diff --git a/libclamav/xlm_extract.c b/libclamav/xlm_extract.c
index daaa26af0..2257f19b7 100644
--- a/libclamav/xlm_extract.c
+++ b/libclamav/xlm_extract.c
@@ -4044,7 +4044,9 @@ static cl_error_t parse_formula(FILE *out_file, char data[], unsigned data_size)
                     goto done;
                 }

-                double val = *(double *)&data[data_pos + 1];
+                double val;
+                /* Avoid unaligned double loads (may SIGBUS on 32-bit ARM). */
+                memcpy(&val, &data[data_pos + 1], sizeof(val));

                 len = fprintf(out_file, " %f", val);
                 if (len < 0) {