From f7f39d4af5e218d6e257570307991625b8f34474 Mon Sep 17 00:00:00 2001 From: Chad Brubaker Date: Thu, 23 Mar 2017 14:42:39 -0700 Subject: [PATCH] Throw an error if no package name is provided by the app when needed Avoid crashing system server if a calling app does not provide a package name to broadcastIntent, instead throw an exception back. Bug: 36452829 Test: Devices boots, apps work Change-Id: Ie67ad4b631f399e674449e0787ed8fab47b89cb6 (cherry picked from commit 674702f0f99091c86bb3eb66572c88304de38a6b) --- .../java/com/android/server/am/ActivityManagerService.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 7a83436493b83..ce9a904fd6af2 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -18277,6 +18277,10 @@ public class ActivityManagerService extends IActivityManager.Stub return record.info.isInstantApp(); } // Otherwise check with PackageManager. + if (callerPackage == null) { + Slog.e(TAG, "isInstantApp with an application's uid, no record, and no package name"); + throw new IllegalArgumentException("Calling application did not provide package name"); + } mAppOpsService.checkPackage(uid, callerPackage); try { IPackageManager pm = AppGlobals.getPackageManager();