diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java index 2e96f18bedb21..b270dd86bb8e4 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java @@ -730,6 +730,11 @@ public class SettingsBackupAgent extends BackupAgentHelper { try { int stateVersion = dataInput.readInt(); + if (stateVersion > STATE_VERSION) { + // Constrain the maximum state version this backup agent + // can handle in case a newer or corrupt backup set existed + stateVersion = STATE_VERSION; + } for (int i = 0; i < STATE_SIZES[stateVersion]; i++) { stateChecksums[i] = dataInput.readLong(); }