summaryrefslogtreecommitdiff
path: root/core/LocApiBase.cpp
diff options
context:
space:
mode:
authorhaohuang <haohuang@codeaurora.org>2021-01-13 14:10:41 +0800
committerGerrit - the friendly Code Review server <code-review@localhost>2021-01-18 23:27:19 -0800
commitd9445345a8ae71caf47fa1fc3bd98d20c0fde7c4 (patch)
treea3b7bad32e4df091cdbd8b338a938d1a41ebfa6e /core/LocApiBase.cpp
parentfd1721bc52c2595d6fc143425c1a6e68ca9201d8 (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
Diffstat (limited to 'core/LocApiBase.cpp')
-rw-r--r--core/LocApiBase.cpp8
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