Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 83c994fd authored by Amith Yamasani's avatar Amith Yamasani
Browse files

Clear calling uid before changing whitelist

Avoids security exception for UPDATE_DEVICE_STATS

Bug: 37627773
Test: manual
Change-Id: I18617d068e7db0813c11b23b281d283908664eae
parent 080e1657
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -271,10 +271,15 @@ final class PendingIntentRecord extends IIntentSender.Stub {
                    resolvedType = key.requestResolvedType;
                }

                final int callingUid = Binder.getCallingUid();
                final int callingPid = Binder.getCallingPid();

                final long origId = Binder.clearCallingIdentity();

                if (whitelistDuration > 0) {
                    StringBuilder tag = new StringBuilder(64);
                    tag.append("pendingintent:");
                    UserHandle.formatUid(tag, Binder.getCallingUid());
                    UserHandle.formatUid(tag, callingUid);
                    tag.append(":");
                    if (finalIntent.getAction() != null) {
                        tag.append(finalIntent.getAction());
@@ -283,12 +288,10 @@ final class PendingIntentRecord extends IIntentSender.Stub {
                    } else if (finalIntent.getData() != null) {
                        tag.append(finalIntent.getData());
                    }
                    owner.tempWhitelistForPendingIntentLocked(Binder.getCallingPid(),
                            Binder.getCallingUid(), uid, whitelistDuration, tag.toString());
                    owner.tempWhitelistForPendingIntentLocked(callingPid,
                            callingUid, uid, whitelistDuration, tag.toString());
                }

                final long origId = Binder.clearCallingIdentity();

                boolean sendFinish = finishedReceiver != null;
                int userId = key.userId;
                if (userId == UserHandle.USER_CURRENT) {