diff options
author | Aidan MacDonald <amachronic@protonmail.com> | 2022-05-02 15:23:37 +0100 |
---|---|---|
committer | Aidan MacDonald <amachronic@protonmail.com> | 2022-05-02 15:38:48 +0100 |
commit | 6b8c94a6e3094ab75fcfe319fa2bc100f4e329ec (patch) | |
tree | 6c6ee0a2e7f77084f721ed33ff5b8856ec43fb61 /apps/gui/skin_engine/skin_parser.c | |
parent | 366f00a3d3dc6517e7dcb1bbebb887c4f795320b (diff) | |
download | rockbox-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.c | 5 |
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; |