diff options
author | haohuang <haohuang@codeaurora.org> | 2021-01-13 14:10:41 +0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2021-01-18 23:27:19 -0800 |
commit | d9445345a8ae71caf47fa1fc3bd98d20c0fde7c4 (patch) | |
tree | a3b7bad32e4df091cdbd8b338a938d1a41ebfa6e | |
parent | fd1721bc52c2595d6fc143425c1a6e68ca9201d8 (diff) |
Reslove one overflow issue in LocApiBase
Overflow will happen on 32 bit platform in
getCurrentTime function in LocApiBase. Fix
this issue.
Change-Id: I6c2c1222efdcc06ec9520a3154e535f50979ef7f
CRs-Fixed: 2853405
-rw-r--r-- | core/LocApiBase.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/core/LocApiBase.cpp b/core/LocApiBase.cpp index ebd46d6..6a0ff84 100644 --- a/core/LocApiBase.cpp +++ b/core/LocApiBase.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2011-2014, 2016-2020 The Linux Foundation. All rights reserved. +/* Copyright (c) 2011-2014, 2016-2021 The Linux Foundation. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are @@ -956,7 +956,7 @@ int64_t ElapsedRealtimeEstimator::getElapsedRealtimeEstimateNanos(int64_t curDat if (tbf > 0 && tbf != curDataTimeNanos - mPrevDataTimeNanos) { mFixTimeStablizationThreshold = 5; } - int64_t currentTimeNanos = currentTime.tv_sec*1000000000 + currentTime.tv_nsec; + int64_t currentTimeNanos = (int64_t)currentTime.tv_sec*1000000000 + currentTime.tv_nsec; LOC_LOGd("sinceBootTimeNanos:%" PRIi64 " currentTimeNanos:%" PRIi64 "" " locationTimeNanos:%" PRIi64 "", sinceBootTimeNanos, currentTimeNanos, curDataTimeNanos); @@ -1048,9 +1048,9 @@ bool ElapsedRealtimeEstimator::getCurrentTime( if (clock_gettime(CLOCK_BOOTTIME, &sinceBootTimeTest) != 0) { break; }; - sinceBootTimeNanos = sinceBootTime.tv_sec * 1000000000 + sinceBootTime.tv_nsec; + sinceBootTimeNanos = (int64_t)sinceBootTime.tv_sec * 1000000000 + sinceBootTime.tv_nsec; int64_t sinceBootTimeTestNanos = - sinceBootTimeTest.tv_sec * 1000000000 + sinceBootTimeTest.tv_nsec; + (int64_t)sinceBootTimeTest.tv_sec * 1000000000 + sinceBootTimeTest.tv_nsec; int64_t sinceBootTimeDeltaNanos = sinceBootTimeTestNanos - sinceBootTimeNanos; /* sinceBootTime and sinceBootTimeTest should have a close value if there was no |