On Mai 01 2023, Samuel Thibault wrote:

> cmsg_len is supposed to be socklen_t according to standards, but it was made
> size_t on Linux, see BZ 16919. For ports that have it socklen_t, SIZE_MAX is
> too large. We can however explicitly cast it to the type of cmsg_len so it
> will fit according to that type.
> ---
>  socket/tst-cmsghdr-skeleton.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/socket/tst-cmsghdr-skeleton.c b/socket/tst-cmsghdr-skeleton.c
> index 296a0a8581..9516139f87 100644
> --- a/socket/tst-cmsghdr-skeleton.c
> +++ b/socket/tst-cmsghdr-skeleton.c
> @@ -49,7 +49,7 @@ RUN_TEST_FUNCNAME (CMSG_NXTHDR_IMPL) (void)
>    /* The first header length is so big, using it would cause an overflow.  */
>    cmsg = CMSG_FIRSTHDR (&m);
>    TEST_VERIFY_EXIT ((char *) cmsg == cmsgbuf);
> -  cmsg->cmsg_len = SIZE_MAX;
> +  cmsg->cmsg_len = (__typeof (cmsg->cmsg_len)) SIZE_MAX;

What does that fix?

-- 
Andreas Schwab, sch...@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."

Reply via email to