summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgang.huang <gang.huang@unisoc.com>2024-03-03 11:04:37 +0800
committerSong Chun Fan <schfan@google.com>2024-03-06 00:57:54 +0000
commitf160eeba94e5490d679cffff83589b0e6172b8e8 (patch)
treeccbb99faaa5359a2ae3bfec1a5a0add92f4fc058
parent729b91d11c5213cb5f440c63f24925cd55e54dbd (diff)
downloadbase-f160eeba94e5490d679cffff83589b0e6172b8e8.tar.gz
Catch IllegalArgumentException as it might indicate corrupted packages.xml
Bug: 327803684 Test: Manual Merged-In: Icea3d175ae899413ee28b052086bd9f12a189aea Change-Id: Icea3d175ae899413ee28b052086bd9f12a189aea
-rw-r--r--services/core/java/com/android/server/pm/Settings.java9
1 files changed, 2 insertions, 7 deletions
diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java
index 677a5d11cc6b..e2f8c5071092 100644
--- a/services/core/java/com/android/server/pm/Settings.java
+++ b/services/core/java/com/android/server/pm/Settings.java
@@ -3194,12 +3194,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile
} else if (tagName.equals("verifier")) {
final String deviceIdentity = parser.getAttributeValue(null, "device");
- try {
- mVerifierDeviceIdentity = VerifierDeviceIdentity.parse(deviceIdentity);
- } catch (IllegalArgumentException e) {
- Slog.w(PackageManagerService.TAG, "Discard invalid verifier device id: "
- + e.getMessage());
- }
+ mVerifierDeviceIdentity = VerifierDeviceIdentity.parse(deviceIdentity);
} else if (TAG_READ_EXTERNAL_STORAGE.equals(tagName)) {
// No longer used.
} else if (tagName.equals("keyset-settings")) {
@@ -3228,7 +3223,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile
}
str.close();
- } catch (IOException | XmlPullParserException e) {
+ } catch (IOException | XmlPullParserException | IllegalArgumentException e) {
// Remove corrupted file and retry.
atomicFile.failRead(str, e);