blob: 278ec17b2890e8b16a8dfb4cbecfdfc3bd47a473 [file] [log] [blame]
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.