OSDN Git Service

Bugreport Manager service clear binder identity
authorAbhijeet Kaur <abkaur@google.com>
Thu, 28 Feb 2019 11:50:27 +0000 (11:50 +0000)
committerAbhijeet Kaur <abkaur@google.com>
Thu, 14 Mar 2019 20:12:22 +0000 (20:12 +0000)
Binder identity of the caller needs to be cleared before making a call
to ensureIsPrimaryUser() and is later restored for the rest of the code
to execute.

Test: Builds
Change-Id: Ida781b633efbea57a9442fb9a8a5f823f9acbe8b
Merged-In: Ida781b633efbea57a9442fb9a8a5f823f9acbe8b
(cherry picked from commit 99766179567464860585feeb669eb01619598a50)

services/core/java/com/android/server/os/BugreportManagerServiceImpl.java

index f4454ae..85a3ba1 100644 (file)
@@ -78,7 +78,12 @@ class BugreportManagerServiceImpl extends IDumpstate.Stub {
         Preconditions.checkNotNull(bugreportFd);
         Preconditions.checkNotNull(listener);
         validateBugreportMode(bugreportMode);
-        ensureIsPrimaryUser();
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            ensureIsPrimaryUser();
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
 
         int callingUid = Binder.getCallingUid();
         mAppOps.checkPackage(callingUid, callingPackage);