mkimxboot: Fix potentially unaligned pointer access of a packed structure

rockbox-gerrit-noreply--- via rockbox-cvs <[email protected]> Wed, 1 Jul 2026 17:09:01 -0400
Newsgroups gmane.comp.systems.archos.rockbox.cvs
Message-ID <[email protected]>
commit c7d5603c63ff70d50f8733d8329584aaecb4b478
Author: Vencislav Atanasov <[email protected]>
Date:   Mon Jun 29 21:40:30 2026 +0300

    mkimxboot: Fix potentially unaligned pointer access of a packed structure
    
    Co-authored-by: ChatGPT (GPT-5.3 Mini) <[email protected]>
    Change-Id: I437ae173a8f1304a33082e62b86110c9bc4488ba

diff --git a/utils/mkimxboot/mkimxboot.c b/utils/mkimxboot/mkimxboot.c
index f631c022be..e9ce9c6ca9 100644
--- a/utils/mkimxboot/mkimxboot.c
+++ b/utils/mkimxboot/mkimxboot.c
@@ -454,12 +454,16 @@ static enum imx_error_t parse_version(const char *s, struct sb_version_t *ver)
         printf("[ERR] Bad version override '%s' (missing second dot)\n", s);
         return IMX_ERROR;
     }
-    enum imx_error_t ret = parse_subversion(s, dot1, &ver->major);
+    uint16_t major, minor, revision;
+    enum imx_error_t ret = parse_subversion(s, dot1, &major);
     if(ret != IMX_SUCCESS) return ret;
-    ret = parse_subversion(dot1 + 1, dot2, &ver->minor);
+    ret = parse_subversion(dot1 + 1, dot2, &minor);
     if(ret != IMX_SUCCESS) return ret;
-    ret = parse_subversion(dot2 + 1, NULL, &ver->revision);
+    ret = parse_subversion(dot2 + 1, NULL, &revision);
     if(ret != IMX_SUCCESS) return ret;
+    memcpy(&ver->major, &major, sizeof(ver->major));
+    memcpy(&ver->minor, &minor, sizeof(ver->minor));
+    memcpy(&ver->revision, &revision, sizeof(ver->revision));
     return IMX_SUCCESS;
 }
 
-- 
rockbox-cvs mailing list
[email protected]
https://lists.haxx.se/mailman/listinfo/rockbox-cvs