mirror of https://git.musl-libc.org/git/musl
Browse Source
commit 32482f61da reduced the number of
int members before the dirent buf from 4 to 3, thereby misaligning it
mod sizeof(off_t), producing invalid accesses on any arch where
alignof(off_t)==sizeof(off_t).
rather than re-adding wasted padding, reorder the struct to meet the
requirement and add a comment and static assertion to prevent this
from getting broken again.
master
2 changed files with 7 additions and 1 deletions
@ -1,9 +1,11 @@ |
|||
struct __dirstream |
|||
{ |
|||
int fd; |
|||
off_t tell; |
|||
int fd; |
|||
int buf_pos; |
|||
int buf_end; |
|||
volatile int lock[1]; |
|||
/* Any changes to this struct must preserve the property:
|
|||
* offsetof(struct __dirent, buf) % sizeof(off_t) == 0 */ |
|||
char buf[2048]; |
|||
}; |
|||
|
|||
Loading…
Reference in new issue