summaryrefslogtreecommitdiff
path: root/apps/gui/skin_engine/skin_parser.c
diff options
context:
space:
mode:
authorAidan MacDonald <amachronic@protonmail.com>2022-05-02 15:23:37 +0100
committerAidan MacDonald <amachronic@protonmail.com>2022-05-02 15:38:48 +0100
commit6b8c94a6e3094ab75fcfe319fa2bc100f4e329ec (patch)
tree6c6ee0a2e7f77084f721ed33ff5b8856ec43fb61 /apps/gui/skin_engine/skin_parser.c
parent366f00a3d3dc6517e7dcb1bbebb887c4f795320b (diff)
downloadrockbox-6b8c94a6e3094ab75fcfe319fa2bc100f4e329ec.tar.gz
rockbox-6b8c94a6e3094ab75fcfe319fa2bc100f4e329ec.zip
Fix some non-portable alignment values
UBSan reports an avalanche of unaligned pointer bugs stemming from hardcoded 4-byte alignments used in certain places. Use sizeof(long) instead to align to the machine word size. Change-Id: I28e505212462c5268afa24e95df3a103ac3e2213
Diffstat (limited to 'apps/gui/skin_engine/skin_parser.c')
-rw-r--r--apps/gui/skin_engine/skin_parser.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/apps/gui/skin_engine/skin_parser.c b/apps/gui/skin_engine/skin_parser.c
index ee32c06ace..1a6861ff16 100644
--- a/apps/gui/skin_engine/skin_parser.c
+++ b/apps/gui/skin_engine/skin_parser.c
@@ -2538,8 +2538,9 @@ bool skin_data_load(enum screen_type screen, struct wps_data *wps_data,
2538 skin_buffer = wps_buffer; 2538 skin_buffer = wps_buffer;
2539 wps_buffer = (char*)buf; 2539 wps_buffer = (char*)buf;
2540 } 2540 }
2541 skin_buffer = ALIGN_UP(skin_buffer, 4); /* align on 4-byte boundary */ 2541
2542 buffersize -= 3; 2542 /* align to long */
2543 ALIGN_BUFFER(skin_buffer, buffersize, sizeof(long));
2543#ifdef HAVE_BACKDROP_IMAGE 2544#ifdef HAVE_BACKDROP_IMAGE
2544 backdrop_filename = "-"; 2545 backdrop_filename = "-";
2545 wps_data->backdrop_id = -1; 2546 wps_data->backdrop_id = -1;