diff options
Diffstat (limited to 'location')
-rw-r--r-- | location/java/android/location/LocationRequest.java | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/location/java/android/location/LocationRequest.java b/location/java/android/location/LocationRequest.java index f4f7b09f086..cb291eadf5b 100644 --- a/location/java/android/location/LocationRequest.java +++ b/location/java/android/location/LocationRequest.java @@ -369,7 +369,15 @@ public final class LocationRequest implements Parcelable { * @return the same object, so that setters can be chained */ public LocationRequest setExpireIn(long millis) { - mExpireAt = millis + SystemClock.elapsedRealtime(); + long elapsedRealtime = SystemClock.elapsedRealtime(); + + // Check for > Long.MAX_VALUE overflow (elapsedRealtime > 0): + if (millis > Long.MAX_VALUE - elapsedRealtime) { + mExpireAt = Long.MAX_VALUE; + } else { + mExpireAt = millis + elapsedRealtime; + } + if (mExpireAt < 0) mExpireAt = 0; return this; } |