summaryrefslogtreecommitdiffstats
path: root/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java')
-rw-r--r--services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
index 87b1d32..7a67d63 100644
--- a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
+++ b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
@@ -843,6 +843,15 @@ class AppWidgetServiceImpl {
throw new IllegalArgumentException("Unknown component " + componentName);
}
+ // Ensure that the service specified by the passed intent belongs to the same package
+ // as provides the passed widget id.
+ String widgetIdPackage = id.provider.info.provider.getPackageName();
+ String servicePackage = componentName.getPackageName();
+ if (!servicePackage.equals(widgetIdPackage)) {
+ throw new SecurityException("Specified intent doesn't belong to the same package"
+ + " as the provided AppWidget id");
+ }
+
// If there is already a connection made for this service intent, then disconnect from
// that first. (This does not allow multiple connections to the same service under
// the same key)