diff --git a/services/java/com/android/server/PackageManagerBackupAgent.java b/services/java/com/android/server/PackageManagerBackupAgent.java index 786f42305c96a..772ddeb13fec3 100644 --- a/services/java/com/android/server/PackageManagerBackupAgent.java +++ b/services/java/com/android/server/PackageManagerBackupAgent.java @@ -327,6 +327,13 @@ public class PackageManagerBackupAgent extends BackupAgent { try { int num = in.readInt(); Log.v(TAG, " ... unflatten read " + num); + + // Sensical? + if (num > 20) { + Log.e(TAG, "Suspiciously large sig count in restore data; aborting"); + throw new IllegalStateException("Bad restore state"); + } + sigs = new Signature[num]; for (int i = 0; i < num; i++) { int len = in.readInt();