On Sat, Jan 11, 2020 at 09:43:04PM +0100, Alexander Bluhm wrote:
> On Thu, Jan 09, 2020 at 04:10:03PM +0100, Martin Pieuchot wrote:
> >             case SO_RCVTIMEO:
> >                 {
> >                     struct timeval tv;
> > -                   int val;
> > +                   uint64_t nsecs;
> >
> >                     if (m == NULL || m->m_len < sizeof (tv))
> >                             return (EINVAL);
> >                     memcpy(&tv, mtod(m, struct timeval *), sizeof tv);
> > -                   val = tvtohz(&tv);
> > -                   if (val > USHRT_MAX)
> > -                           return (EDOM);
> > -
> > +                   nsecs = TIMEVAL_TO_NSEC(&tv);
> 
> There was a range check before, I would like to keep that.
> And tv is user data, we should be more paranoid.
> Something like this, or a new macro TIMEVAL_ISVALID() ?

See timerisvalid(3), merged about a year ago.

Reply via email to