Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a6d78fc7 authored by Scott Mertz's avatar Scott Mertz Committed by Gerrit Code Review
Browse files

SettingsProvider: fix index out of bounds error

- If the property has less comma separated values than
  actual phones, this routine will throw an
  ArrayIndexOutOfBoundsException

Change-Id: I8bb5e79f3ff107f6941d23f7035a41eaf05ba461
parent 321ad3f7
Loading
Loading
Loading
Loading
+10 −5
Original line number Diff line number Diff line
@@ -2827,16 +2827,21 @@ public class DatabaseHelper extends SQLiteOpenHelper {
            final String[] networkSettings = new String[phoneCount];
            boolean error = defNetworkSettings.length != phoneCount;
            for (int i = 0; i < phoneCount; i++) {
                if (i < defNetworkSettings.length) {
                    try {
                    networkSettings[i] = String.valueOf(Integer.parseInt(defNetworkSettings[i]));
                        networkSettings[i] = String.valueOf(
                                Integer.parseInt(defNetworkSettings[i]));
                    } catch (NumberFormatException ex) {
                        networkSettings[i] = String.valueOf(RILConstants.PREFERRED_NETWORK_MODE);
                        error = true;
                    }
                } else {
                    networkSettings[i] = String.valueOf(RILConstants.PREFERRED_NETWORK_MODE);
                    error = true;
                }
            }
            if (error) {
                Log.w(TAG, "Wrong ro.telephony.default_network setting " + defVal
                        + ". Fallback to defaults");
                Log.w(TAG, "Invalid ro.telephony.default_network: " + defVal);
            }
            loadSetting(stmt, Settings.Global.PREFERRED_NETWORK_MODE, TextUtils.join(",",
                    networkSettings));