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

Joseph Myers joseph@codesourcery.com
Wed Nov 5 16:45:00 GMT 2014


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.)

-- 
Joseph S. Myers
joseph@codesourcery.com



More information about the Libc-alpha mailing list