mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-11-09 13:12:37 -05:00
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
This commit is contained in:
parent
366f00a3d3
commit
6b8c94a6e3
5 changed files with 19 additions and 37 deletions
|
|
@ -2024,7 +2024,7 @@ int clip_jpeg_fd(int fd,
|
|||
#else
|
||||
struct jpeg *p_jpeg = (struct jpeg*)bm->data;
|
||||
int tmp_size = maxsize;
|
||||
ALIGN_BUFFER(p_jpeg, tmp_size, sizeof(int));
|
||||
ALIGN_BUFFER(p_jpeg, tmp_size, sizeof(long));
|
||||
/* not enough memory for our struct jpeg */
|
||||
if ((size_t)tmp_size < sizeof(struct jpeg))
|
||||
return -1;
|
||||
|
|
@ -2133,7 +2133,7 @@ int clip_jpeg_fd(int fd,
|
|||
char *buf_end = (char *)bm->data + maxsize;
|
||||
maxsize = buf_end - buf_start;
|
||||
#ifndef JPEG_FROM_MEM
|
||||
ALIGN_BUFFER(buf_start, maxsize, sizeof(uint32_t));
|
||||
ALIGN_BUFFER(buf_start, maxsize, sizeof(long));
|
||||
if (maxsize < (int)sizeof(struct jpeg))
|
||||
return -1;
|
||||
memmove(buf_start, p_jpeg, sizeof(struct jpeg));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue