[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [hurd, commited] socket: Fix tst-cmsghdr-skeleton.c use of cmsg_len
From: |
Samuel Thibault |
Subject: |
Re: [hurd, commited] socket: Fix tst-cmsghdr-skeleton.c use of cmsg_len |
Date: |
Mon, 1 May 2023 15:43:44 +0200 |
User-agent: |
NeoMutt/20170609 (1.8.3) |
Andreas Schwab, le lun. 01 mai 2023 15:38:45 +0200, a ecrit:
> 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?
64bit hurd, where cmsg_len is socklen_t as the standards require (thus
32bit).
Samuel