This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFC on enforcing best-practice through wrappers? [PR15819, PR15722]


On Wed, Nov 05, 2014 at 04:45:21PM +0000, Joseph Myers wrote:
> On Wed, 5 Nov 2014, Alexandre Oliva wrote:
> 
> > +      struct timeval __now;
> > +      (void) __gettimeofday (&__now, NULL);
> > +
> > +      long int __end = __now.tv_sec * 1000 + __timeout
> > +	+ (__now.tv_usec + 500) / 1000;
> 
> This multiplication by 1000 will overflow on 32-bit systems.  Things may 
> in fact work OK if it wraps around, but it's not a good idea to rely on 
> that without explicit casts to unsigned and comments about why it's OK 
> even when things wrap around.  (Pre-existing condition in the code you're 
> moving.)

I suspect it's also semantically wrong. For emulating relative
timeouts you generally want the monotonic clock, not the realtime
clock.

Rich


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]