[Bug libc/13246] RFE: strtold: do not include uninitialized bytes when converting "NaN"

jakub at redhat dot com sourceware-bugzilla@sourceware.org
Thu Oct 6 08:46:00 GMT 2011


http://sourceware.org/bugzilla/show_bug.cgi?id=13246

--- Comment #6 from Jakub Jelinek <jakub at redhat dot com> 2011-10-06 08:45:17 UTC ---
First of all, it is impossible to do anything about this on the glibc side.
Just look at the generated code, it is:
  call strtold@plt
  fstpt  (%rsp)          # resp. fstpt (%esp)
For x86_64/i686 it would be sufficient if you used memset to clear the whole
var, then store the value into it after making sure the compiler doesn't
optimize it away.  Perhaps something like:
  union U { long double l; unsigned char c[sizeof (long double); };
  volatile union U u;
  size_t i;
  for (i = 0; i < sizeof (long double); i++)
    u.c[i] = 0;
  u.l = strtold (...);
would do the job portably?

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the Glibc-bugs mailing list