Index: net/cookies/cookie_util.cc |
diff --git a/net/cookies/cookie_util.cc b/net/cookies/cookie_util.cc |
index 210b8d479af7bcafc3274746b321a0fc6915d26c..9513dc83a6f2d2f507a29c2ee66961aa393e1fb1 100644 |
--- a/net/cookies/cookie_util.cc |
+++ b/net/cookies/cookie_util.cc |
@@ -200,12 +200,14 @@ base::Time ParseCookieTime(const std::string& time_string) { |
if (exploded.year >= 0 && exploded.year <= 68) |
exploded.year += 2000; |
- // If our values are within their correct ranges, we got our time. |
if (exploded.day_of_month >= 1 && exploded.day_of_month <= 31 && |
- exploded.month >= 1 && exploded.month <= 12 && |
- exploded.year >= 1601 && exploded.year <= 30827 && |
- exploded.hour <= 23 && exploded.minute <= 59 && exploded.second <= 59) { |
- return base::Time::FromUTCExploded(exploded); |
+ exploded.month >= 1 && exploded.month <= 12 && exploded.year >= 1601 && |
+ exploded.year <= 30827 && exploded.hour <= 23 && exploded.minute <= 59 && |
+ exploded.second <= 59) { |
+ // Time conversion can fail. See comments in base/time.h |
+ base::Time out_time; |
+ if (base::Time::FromUTCExploded(exploded, &out_time)) |
+ return out_time; |
} |
// One of our values was out of expected range. For well-formed input, |