On 10/20/25 11:26 PM, Kees Cook wrote:
> Add flexible sockaddr structure to support addresses longer than the
> traditional 14-byte struct sockaddr::sa_data limitation without
> requiring the full 128-byte sa_data of struct sockaddr_storage. This
> allows the network APIs to pass around a pointer to an object that
> isn't lying to the compiler about how big it is, but must be accompanied
> by its actual size as an additional parameter.
>
> It's possible we may way to migrate to including the size with the
> struct in the future, e.g.:
>
> struct sockaddr_unspec {
> u16 sa_data_len;
> u16 sa_family;
> u8 sa_data[] __counted_by(sa_data_len);
> };
Side note: sockaddr_unspec is possibly not the optimal name, as
AF_UNSPEC has a specific meaning/semantic.
Name-wise, I think 'sockaddr_sized' would be better, but I agree with
David the struct may cause unaligned access problems.
/P