musl: update musl to 1.1.16+ and switch to download from git
[openwrt/staging/yousong.git] / toolchain / musl / patches / 039-fix-integer-overflow-in-float-printf-needed-precision-computation.patch
diff --git a/toolchain/musl/patches/039-fix-integer-overflow-in-float-printf-needed-precision-computation.patch b/toolchain/musl/patches/039-fix-integer-overflow-in-float-printf-needed-precision-computation.patch
deleted file mode 100644 (file)
index cfbd94f..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-From 70d2687d85c314963cf280759b23fd4573ff0d82 Mon Sep 17 00:00:00 2001
-From: Rich Felker <dalias@aerifal.cx>
-Date: Wed, 19 Oct 2016 20:17:16 -0400
-Subject: fix integer overflow in float printf needed-precision computation
-
-if the requested precision is close to INT_MAX, adding
-LDBL_MANT_DIG/3+8 overflows. in practice the resulting undefined
-behavior manifests as a large negative result, which is then used to
-compute the new end pointer (z) with a wildly out-of-bounds value
-(more overflow, more undefined behavior). the end result is at least
-incorrect output and character count (return value); worse things do
-not seem to happen, but detailed analysis has not been done.
-
-this patch fixes the overflow by performing the intermediate
-computation as unsigned; after division by 9, the final result
-necessarily fits in int.
----
- 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 e439a07..cd17ad7 100644
---- a/src/stdio/vfprintf.c
-+++ b/src/stdio/vfprintf.c
-@@ -312,7 +312,7 @@ static int fmt_fp(FILE *f, long double y, int w, int p, int fl, int t)
-       }
-       while (e2<0) {
-               uint32_t carry=0, *b;
--              int sh=MIN(9,-e2), need=1+(p+LDBL_MANT_DIG/3+8)/9;
-+              int sh=MIN(9,-e2), need=1+(p+LDBL_MANT_DIG/3U+8)/9;
-               for (d=a; d<z; d++) {
-                       uint32_t rm = *d & (1<<sh)-1;
-                       *d = (*d>>sh) + carry;
--- 
-cgit v0.11.2