mirror of
https://git.musl-libc.org/git/musl
synced 2025-02-15 17:54:23 +03:00
![Rich Felker](/assets/img/avatar_default.png)
compilers are free not to copy, or in some cases to clobber, padding bytes in a structure. while it's an aliasing violation, and thus undefined behavior, to copy or manipulate other sockaddr types using sockaddr_storage, it seems likely that traditional code attempts to do so, and the original intent of the sockaddr_storage structure was probably to allow such usage. in the interest of avoiding silent and potentially dangerous breakage, ensure that there are no actual padding bytes in sockaddr_storage by moving and adjusting the size of the __ss_padding member so that it fits exactly. this change also removes a silent assumption that the alignment of long is equal to its size.