fix off-by-one error that caused uninitialized memory read in floatscan

this caused misreading of certain floating point values that are exact
multiples of large powers of ten, unpredictable depending on prior
stack contents.
This commit is contained in:
Rich Felker 2012-04-30 02:56:47 -04:00
parent e5a9b50e97
commit 28c5d46d84

View File

@ -244,7 +244,7 @@ static long double decfloat(FILE *f, int c, int bits, int emin, int sign, int po
/* Assemble desired bits into floating point variable */
for (y=i=0; i<LD_B1B_DIG; i++) {
if ((a+i & MASK)==z) x[z=(z+1 & MASK)] = 0;
if ((a+i & MASK)==z) x[(z=(z+1 & MASK))-1] = 0;
y = 1000000000.0L * y + x[a+i & MASK];
}