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

Commit fd5170c6 authored by Roshan Pius's avatar Roshan Pius
Browse files

UwbServiceImpl: Use cleanCallingIdentity to perform permission checks

The AIDL callbacks occur with the vendor service context. So, need to
use the uwbservice context to perform the permission checks.

Bug: 189476827
Test: Manual tests
Change-Id: Ie4d64a610483e759d065ee3f466c23bd6016dbf8
parent 9fb45cc8
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.server.uwb;
import android.annotation.NonNull;
import android.content.AttributionSource;
import android.content.Context;
import android.os.Binder;
import android.os.IBinder;
import android.os.PersistableBundle;
import android.os.RemoteException;
@@ -171,8 +172,10 @@ public class UwbServiceImpl extends IUwbAdapter.Stub implements IBinder.DeathRec
                RangingReport rangingReport)
                throws RemoteException {
            if (!mIsValid) return;
            if (!mUwbInjector.checkUwbRangingPermissionForDataDelivery(
                    mAttributionSource, "uwb ranging result")) {
            boolean permissionGranted = Binder.withCleanCallingIdentity(
                    () -> mUwbInjector.checkUwbRangingPermissionForDataDelivery(
                            mAttributionSource, "uwb ranging result"));
            if (!permissionGranted) {
                Log.e(TAG, "Not delivering ranging result because of permission denial"
                        + mSessionHandle);
                return;