[hurd,commited] bits/socket.h: Update to recent BSD definition

Florian Weimer fweimer@redhat.com
Thu Jan 2 10:12:55 GMT 2025


* Samuel Thibault:

> The old BSD 4.4 definition (not used by Linux) was not 64b-proof: the
> cmsg_data field is supposed to CMSG_ALIGN'ed (as can be also seen in the
> CMSG_LEN macro).
>
> Suggested-by: Diego Nieto Cid <dnietoc@gmail.com>
> ---
>  bits/socket.h                   | 12 ++++--------
>  sysdeps/mach/hurd/bits/socket.h | 12 ++++--------
>  2 files changed, 8 insertions(+), 16 deletions(-)
>
> diff --git a/bits/socket.h b/bits/socket.h
> index 62276fb49d..e83ad5bc01 100644
> --- a/bits/socket.h
> +++ b/bits/socket.h
> @@ -221,17 +221,13 @@ struct cmsghdr
>  				   of cmsghdr structure.  */
>      int cmsg_level;		/* Originating protocol.  */
>      int cmsg_type;		/* Protocol specific type.  */
> -#if __glibc_c99_flexarr_available
> -    __extension__ unsigned char __cmsg_data __flexarr; /* Ancillary data.  */
> -#endif
> + /* This field is to be aligned with CMSG_ALIGN */
> + /* __extension__ unsigned char __cmsg_data __flexarr; */ /* Ancillary data.  */
>    };

Does the Linux version have the same problem?

Thanks,
Florian



More information about the Libc-alpha mailing list