From 34d1c919fd4f6b9f1adb7d62dd16ba1fa8e91c79 Mon Sep 17 00:00:00 2001 From: Makoto Onuki Date: Thu, 10 Mar 2016 14:24:58 -0800 Subject: [PATCH] Guard against null bitmap path Bug 27548047 Change-Id: I7130652f5ae6f7ff6bd4ae6a3ace31986a49be30 --- .../java/com/android/server/pm/ShortcutService.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/services/core/java/com/android/server/pm/ShortcutService.java b/services/core/java/com/android/server/pm/ShortcutService.java index 2a80a0e1bf20f..1cd0592db2676 100644 --- a/services/core/java/com/android/server/pm/ShortcutService.java +++ b/services/core/java/com/android/server/pm/ShortcutService.java @@ -1436,16 +1436,20 @@ public class ShortcutService extends IShortcutService.Stub { @Override public ParcelFileDescriptor getShortcutIconFd(@NonNull String callingPackage, - @NonNull ShortcutInfo shortcut, int userId) { - Preconditions.checkNotNull(shortcut, "shortcut"); + @NonNull ShortcutInfo shortcutIn, int userId) { + Preconditions.checkNotNull(shortcutIn, "shortcut"); synchronized (mLock) { final ShortcutInfo shortcutInfo = getPackageShortcutsLocked( - shortcut.getPackageName(), userId).findShortcutById(shortcut.getId()); + shortcutIn.getPackageName(), userId).findShortcutById(shortcutIn.getId()); if (shortcutInfo == null || !shortcutInfo.hasIconFile()) { return null; } try { + if (shortcutInfo.getBitmapPath() == null) { + Slog.w(TAG, "null bitmap detected in getShortcutIconFd()"); + return null; + } return ParcelFileDescriptor.open( new File(shortcutInfo.getBitmapPath()), ParcelFileDescriptor.MODE_READ_ONLY); @@ -1977,7 +1981,7 @@ class PackageShortcuts { final ShortcutInfo si = shortcuts.valueAt(i); pw.print(" "); pw.println(si.toInsecureString()); - if (si.hasIconFile()) { + if (si.getBitmapPath() != null) { final long len = new File(si.getBitmapPath()).length(); pw.print(" "); pw.print("bitmap size=");