From 5112cfef2a2023a2629a426154547444593e9f9b Mon Sep 17 00:00:00 2001 From: Alex Buynytskyy Date: Wed, 1 Mar 2023 09:56:23 -0800 Subject: [PATCH] Stop processing on IOException. IOException usually means that the file is corrupted and further processing is dangerous and should be stopped. Bug: 269049175 Bug: 246540168 Fixes: 269049175 Test: atest ShortcutManagerTest1 Change-Id: I493c2658298dc23d45b37776663f316d31238b52 --- .../com/android/server/pm/ShortcutPackage.java | 3 +++ services/tests/servicestests/Android.bp | 1 + services/tests/servicestests/AndroidTest.xml | 2 ++ .../tests/servicestests/data/broken_shortcut.xml | Bin 0 -> 851 bytes .../android/server/pm/ShortcutManagerTest1.java | 12 ++++++++++++ 5 files changed, 18 insertions(+) create mode 100644 services/tests/servicestests/data/broken_shortcut.xml diff --git a/services/core/java/com/android/server/pm/ShortcutPackage.java b/services/core/java/com/android/server/pm/ShortcutPackage.java index 67639fbef1245..28cb7f0b03a66 100644 --- a/services/core/java/com/android/server/pm/ShortcutPackage.java +++ b/services/core/java/com/android/server/pm/ShortcutPackage.java @@ -2048,6 +2048,9 @@ class ShortcutPackage extends ShortcutPackageItem { shortcutUser.getUserId(), fromBackup); // Don't use addShortcut(), we don't need to save the icon. ret.mShortcuts.put(si.getId(), si); + } catch (IOException e) { + // Don't ignore IO exceptions. + throw e; } catch (Exception e) { // b/246540168 malformed shortcuts should be ignored Slog.e(TAG, "Failed parsing shortcut.", e); diff --git a/services/tests/servicestests/Android.bp b/services/tests/servicestests/Android.bp index 3a7b9a49f1610..90dbd539f0293 100644 --- a/services/tests/servicestests/Android.bp +++ b/services/tests/servicestests/Android.bp @@ -115,6 +115,7 @@ android_test { ":StubTestApp", ":SuspendTestApp", ":MediaButtonReceiverHolderTestHelperApp", + "data/broken_shortcut.xml", ], java_resources: [ diff --git a/services/tests/servicestests/AndroidTest.xml b/services/tests/servicestests/AndroidTest.xml index d9676470aca37..b304968f3e69d 100644 --- a/services/tests/servicestests/AndroidTest.xml +++ b/services/tests/servicestests/AndroidTest.xml @@ -21,6 +21,8 @@