From a64cd48594218c47013906afa2550a8bc64c7156 Mon Sep 17 00:00:00 2001 From: Christopher Desjardins Date: Tue, 19 May 2015 11:25:40 +0000 Subject: [PATCH] Fix null pointer dereference when security exception occurs Just above the SecurityException is a check for r.record == null, thus dereferencing r.record will cause a null pointer exception. Found in Android 4.3 with the following steps: 1) Start the music app. 2) Switch to the restricted user. 3) Navigate to Settings->Apps->Running->Music. 4) Tap the stop button. The security exception should be thrown which results in a nice message to the user, but instead a null pointer exception is thrown which results in the settings app crashing. Change-Id: I4a306c38650c9d366896e592767dde70adb71c57 --- services/core/java/com/android/server/am/ActiveServices.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/am/ActiveServices.java b/services/core/java/com/android/server/am/ActiveServices.java index 4e7aa77557eed..24ae766035a11 100755 --- a/services/core/java/com/android/server/am/ActiveServices.java +++ b/services/core/java/com/android/server/am/ActiveServices.java @@ -509,7 +509,7 @@ public final class ActiveServices { // r.record is null if findServiceLocked() failed the caller permission check if (r.record == null) { throw new SecurityException( - "Permission Denial: Accessing service " + r.record.name + "Permission Denial: Accessing service" + " from pid=" + Binder.getCallingPid() + ", uid=" + Binder.getCallingUid() + " requires " + r.permission);