diff --git a/base/third_party/dmg_fp/dtoa.cc b/base/third_party/dmg_fp/dtoa.cc index c0a51c2..ab4e056 100644 --- a/base/third_party/dmg_fp/dtoa.cc +++ b/base/third_party/dmg_fp/dtoa.cc @@ -2674,8 +2674,11 @@ strtod if (c > '0' && c <= '9') { L = c - '0'; s1 = s; - while((c = *++s) >= '0' && c <= '9') - L = 10*L + c - '0'; + while((c = *++s) >= '0' && c <= '9') { + if (L < (INT_MAX - 10) / 10) { + L = 10*L + (c - '0'); + } + } if (s - s1 > 8 || L > 19999) /* Avoid confusion from exponents * so large that e might overflow.