You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

28 lines
1.1 KiB

From f7ef75a1ddea9d18e1f166b76e90f948cbfd1f77 Mon Sep 17 00:00:00 2001
From: Qijiang Fan <fqj@chromium.org>
Date: Tue, 31 Mar 2020 17:43:16 +0900
Subject: [PATCH] libchrome: fix integer overflow if microseconds is INT64_MIN
Change-Id: Id3641f6b625f716ae6d134002c0224ed32284939
---
base/time/time_exploded_posix.cc | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/base/time/time_exploded_posix.cc b/base/time/time_exploded_posix.cc
index 627c6b4f8735..2aef3864554e 100644
--- a/base/time/time_exploded_posix.cc
+++ b/base/time/time_exploded_posix.cc
@@ -141,8 +141,7 @@ void Time::Explode(bool is_local, Exploded* exploded) const {
millisecond = milliseconds % kMillisecondsPerSecond;
} else {
// Round these *down* (towards -infinity).
- milliseconds = (microseconds - kMicrosecondsPerMillisecond + 1) /
- kMicrosecondsPerMillisecond;
+ milliseconds = (microseconds + 1) / kMicrosecondsPerMillisecond - 1;
seconds =
(milliseconds - kMillisecondsPerSecond + 1) / kMillisecondsPerSecond;
// Make this nonnegative (and between 0 and 999 inclusive).
--
2.24.1