summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2016-05-16 19:56:13 +0000
committerandroid-build-merger <android-build-merger@google.com>2016-05-16 19:56:13 +0000
commit47c86748e1b4853ef0758715ddc76e82d04f3a32 (patch)
tree770590fe8ba627131eced2be6688a84f0295a0d1
parentf2ea0cdd94d1c5eceedc740d121d4cc506988dfe (diff)
parent0d86a8dccf6557587eb3abae1bb3573e2c40c12c (diff)
downloadLauncher3-47c86748e1b4853ef0758715ddc76e82d04f3a32.tar.gz
On some "non-standard" devices, load label can cause a security exception due to modified platform code
am: 0d86a8dccf * commit '0d86a8dccf6557587eb3abae1bb3573e2c40c12c': On some "non-standard" devices, load label can cause a security exception due to modified platform code Change-Id: I7d65f2f39353c50a43334709f8b3bf970969a68c
-rw-r--r--src/com/android/launcher3/compat/LauncherActivityInfoCompatV16.java8
-rw-r--r--src/com/android/launcher3/model/WidgetsAndShortcutNameComparator.java10
2 files changed, 16 insertions, 2 deletions
diff --git a/src/com/android/launcher3/compat/LauncherActivityInfoCompatV16.java b/src/com/android/launcher3/compat/LauncherActivityInfoCompatV16.java
index fee0376bd3..15c5e69dde 100644
--- a/src/com/android/launcher3/compat/LauncherActivityInfoCompatV16.java
+++ b/src/com/android/launcher3/compat/LauncherActivityInfoCompatV16.java
@@ -26,6 +26,7 @@ import android.content.pm.PackageInfo;
import android.content.pm.ResolveInfo;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
+import android.util.Log;
public class LauncherActivityInfoCompatV16 extends LauncherActivityInfoCompat {
@@ -51,7 +52,12 @@ public class LauncherActivityInfoCompatV16 extends LauncherActivityInfoCompat {
}
public CharSequence getLabel() {
- return mResolveInfo.loadLabel(mPm);
+ try {
+ return mResolveInfo.loadLabel(mPm);
+ } catch (SecurityException e) {
+ Log.e("LAInfoCompat", "Failed to extract app display name from resolve info", e);
+ return "";
+ }
}
public Drawable getIcon(int density) {
diff --git a/src/com/android/launcher3/model/WidgetsAndShortcutNameComparator.java b/src/com/android/launcher3/model/WidgetsAndShortcutNameComparator.java
index b99056023a..2e4167e124 100644
--- a/src/com/android/launcher3/model/WidgetsAndShortcutNameComparator.java
+++ b/src/com/android/launcher3/model/WidgetsAndShortcutNameComparator.java
@@ -4,6 +4,8 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
+import android.util.Log;
+
import com.android.launcher3.LauncherAppWidgetProviderInfo;
import com.android.launcher3.Utilities;
import com.android.launcher3.compat.AppWidgetManagerCompat;
@@ -91,7 +93,13 @@ public class WidgetsAndShortcutNameComparator implements Comparator<Object> {
return Utilities.trim(mManager.loadLabel(widgetInfo));
} else {
ResolveInfo shortcutInfo = (ResolveInfo) o;
- return Utilities.trim(shortcutInfo.loadLabel(mPackageManager));
+ try {
+ return Utilities.trim(shortcutInfo.loadLabel(mPackageManager));
+ } catch (Exception e) {
+ Log.e("ShortcutNameComparator",
+ "Failed to extract app display name from resolve info", e);
+ return "";
+ }
}
}
};