Guard against null bitmap path
Bug 27548047
Change-Id: I7130652f5ae6f7ff6bd4ae6a3ace31986a49be30
diff --git a/services/core/java/com/android/server/pm/ShortcutService.java b/services/core/java/com/android/server/pm/ShortcutService.java
index 2a80a0e..1cd0592 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 @@
@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 @@
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=");