Commit 43cb9064 authored by fionaxu's avatar fionaxu Committed by gitbuildkicker
Browse files

backport security fix: avoid set NITZ time to 2038

Bug: 29083635
Change-Id: I21c5f4147d8146f92b7e33f0967a179ae644a263
(cherry picked from commit 6c2365a2)
parent 94ada5cb
......@@ -101,6 +101,8 @@ public class CdmaServiceStateTracker extends ServiceStateTracker {
private static final int NITZ_UPDATE_DIFF_DEFAULT = 2000;
private int mNitzUpdateDiff = SystemProperties.getInt("ro.nitz_update_diff",
NITZ_UPDATE_DIFF_DEFAULT);
/** Time stamp after 19 January 2038 is not supported under 32 bit */
private static final int MAX_NITZ_YEAR = 2037;
private int mRoamingIndicator;
private boolean mIsInPrl;
......@@ -1614,6 +1616,10 @@ public class CdmaServiceStateTracker extends ServiceStateTracker {
String[] nitzSubs = nitz.split("[/:,+-]");
int year = 2000 + Integer.parseInt(nitzSubs[0]);
if (year > MAX_NITZ_YEAR) {
if (DBG) loge("NITZ year: " + year + " exceeds limit, skip NITZ time update");
return;
}
c.set(Calendar.YEAR, year);
// month is 0 based!
......
......@@ -136,6 +136,8 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
/** Boolean is true is setTimeFromNITZString was called */
private boolean mNitzUpdatedTime = false;
/** Time stamp after 19 January 2038 is not supported under 32 bit */
private static final int MAX_NITZ_YEAR = 2037;
String mSavedTimeZone;
long mSavedTime;
......@@ -1739,6 +1741,10 @@ final class GsmServiceStateTracker extends ServiceStateTracker {
String[] nitzSubs = nitz.split("[/:,+-]");
int year = 2000 + Integer.parseInt(nitzSubs[0]);
if (year > MAX_NITZ_YEAR) {
if (DBG) loge("NITZ year: " + year + " exceeds limit, skip NITZ time update");
return;
}
c.set(Calendar.YEAR, year);
// month is 0 based!
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment