From 839bff64a17c1ecaed60feefd9b63554ca9cbad6 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Wed, 20 Jun 2012 09:28:54 -0400 Subject: fix another oob pointer arithmetic issue in printf floating point this one could never cause any problems unless the compiler/machine goes to extra trouble to break oob pointer arithmetic, but it's best to fix it anyway. --- src/stdio/vfprintf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/stdio/vfprintf.c b/src/stdio/vfprintf.c index a3bf18dd..116e1ced 100644 --- a/src/stdio/vfprintf.c +++ b/src/stdio/vfprintf.c @@ -319,7 +319,7 @@ static int fmt_fp(FILE *f, long double y, int w, int p, int fl, int t) if (j < 9*(z-r-1)) { uint32_t x; /* We avoid C's broken division of negative numbers */ - d = r + 1 + (j+9*LDBL_MAX_EXP)/9 - LDBL_MAX_EXP; + d = r + 1 + ((j+9*LDBL_MAX_EXP)/9 - LDBL_MAX_EXP); j += 9*LDBL_MAX_EXP; j %= 9; for (i=10, j++; j<9; i*=10, j++); -- cgit v1.2.1