diff options
author | Diana Z <dzigterman@chromium.org> | 2021-07-09 16:58:01 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-07-12 16:39:06 +0000 |
commit | 6a0e778279fdc6d279e4f286c1bc0f44ca85f8fa (patch) | |
tree | 7c23597ff36ecf25eb586206affd70ef26d5db56 /power | |
parent | 1a078ec75118678e457e45da085c04f0d44837ae (diff) | |
download | chrome-ec-6a0e778279fdc6d279e4f286c1bc0f44ca85f8fa.tar.gz |
Power: Cast hibernate delay before converting to microseconds
If the hibernate delay has been configured to be very large, then the
conversion into microseconds may overflow a uint32_t. So cast before
multiplying.
BRANCH=None
BUG=b:190056419
TEST=on guybrush, confirm target is in the correct range (i.e. 2 months
from now)
Signed-off-by: Diana Z <dzigterman@chromium.org>
Change-Id: I449b0d14418cb119080e2e03960a3a31fab4bf2b
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3018450
Reviewed-by: Rob Barnes <robbarnes@google.com>
Diffstat (limited to 'power')
-rw-r--r-- | power/common.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/power/common.c b/power/common.c index 6ecfff543d..64a434b1d8 100644 --- a/power/common.c +++ b/power/common.c @@ -466,7 +466,8 @@ static enum power_state power_common_state(enum power_state state) } now = get_time().val; - target = last_shutdown_time + hibernate_delay * SECOND; + target = last_shutdown_time + + (uint64_t)hibernate_delay * SECOND; switch (board_system_is_idle(last_shutdown_time, &target, now)) { case CRITICAL_SHUTDOWN_HIBERNATE: |