aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/utils.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/utils.cc b/src/utils.cc
index 5d1c3e3..bd15e61 100644
--- a/src/utils.cc
+++ b/src/utils.cc
@@ -4,6 +4,8 @@
#include "src/utils.h"
+#include <limits>
+
#include <base/bind_helpers.h>
#include <base/json/json_reader.h>
@@ -72,10 +74,14 @@ std::unique_ptr<base::DictionaryValue> ErrorInfoToJson(const Error& error) {
}
uint32_t ToJ2000Time(const base::Time& time) {
- return std::max(time.ToTimeT(), kJ2000ToTimeT) - kJ2000ToTimeT;
+ return std::min<int64_t>(
+ std::numeric_limits<int32_t>::max(),
+ std::max<int64_t>(kJ2000ToTimeT, time.ToTimeT()) - kJ2000ToTimeT);
}
base::Time FromJ2000Time(uint32_t time) {
+ if (time >= static_cast<uint32_t>(std::numeric_limits<int32_t>::max()))
+ return base::Time::Max();
return base::Time::FromTimeT(time + kJ2000ToTimeT);
}