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

Commit 913672d2 authored by William Escande's avatar William Escande
Browse files

Fix method not enforcing correct permissions

This missing enforcement were spotted by the erroprone build

Bug: 236759221
Test: m RUN_ERROR_PRONE=true Bluetooth
Ignore-AOSP-First: Cherry-picked from aosp
Merged-In: I5285f0754775c56a73ad1b6eef4bdb7ec3d59757
Change-Id: I5285f0754775c56a73ad1b6eef4bdb7ec3d59757
parent 28d2f42b
Loading
Loading
Loading
Loading
+52 −7
Original line number Diff line number Diff line
@@ -3679,9 +3679,17 @@ public class AdapterService extends Service {
                receiver.propagateException(e);
            }
        }
        @RequiresPermission(allOf = {
                android.Manifest.permission.BLUETOOTH_CONNECT,
                android.Manifest.permission.BLUETOOTH_PRIVILEGED,
        })
        private boolean allowLowLatencyAudio(boolean allowed, BluetoothDevice device) {
            AdapterService service = getService();
            if (service == null) {
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(
                            service, Utils.getCallingAttributionSource(service),
                                "AdapterService allowLowLatencyAudio")) {
                return false;
            }
            enforceBluetoothPrivilegedPermission(service);
@@ -3697,12 +3705,24 @@ public class AdapterService extends Service {
                receiver.propagateException(e);
            }
        }
        public int startRfcommListener(
        @RequiresPermission(allOf = {
                android.Manifest.permission.BLUETOOTH_CONNECT,
                android.Manifest.permission.BLUETOOTH_PRIVILEGED,
        })
        private int startRfcommListener(
                String name,
                ParcelUuid uuid,
                PendingIntent pendingIntent,
                AttributionSource attributionSource) {
            return mService.startRfcommListener(name, uuid, pendingIntent, attributionSource);
            AdapterService service = getService();
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(
                            service, attributionSource, "AdapterService startRfcommListener")) {
                return BluetoothStatusCodes.ERROR_BLUETOOTH_NOT_ALLOWED;
            }
            enforceBluetoothPrivilegedPermission(service);
            return service.startRfcommListener(name, uuid, pendingIntent, attributionSource);
        }

        @Override
@@ -3714,8 +3734,20 @@ public class AdapterService extends Service {
                receiver.propagateException(e);
            }
        }
        public int stopRfcommListener(ParcelUuid uuid, AttributionSource attributionSource) {
            return mService.stopRfcommListener(uuid, attributionSource);
        @RequiresPermission(allOf = {
                android.Manifest.permission.BLUETOOTH_CONNECT,
                android.Manifest.permission.BLUETOOTH_PRIVILEGED,
        })
        private int stopRfcommListener(ParcelUuid uuid, AttributionSource attributionSource) {
            AdapterService service = getService();
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(
                            service, attributionSource, "AdapterService stopRfcommListener")) {
                return BluetoothStatusCodes.ERROR_BLUETOOTH_NOT_ALLOWED;
            }
            enforceBluetoothPrivilegedPermission(service);
            return service.stopRfcommListener(uuid, attributionSource);
        }

        @Override
@@ -3727,9 +3759,22 @@ public class AdapterService extends Service {
                receiver.propagateException(e);
            }
        }
        public IncomingRfcommSocketInfo retrievePendingSocketForServiceRecord(
        @RequiresPermission(allOf = {
                android.Manifest.permission.BLUETOOTH_CONNECT,
                android.Manifest.permission.BLUETOOTH_PRIVILEGED,
        })
        private IncomingRfcommSocketInfo retrievePendingSocketForServiceRecord(
                ParcelUuid uuid, AttributionSource attributionSource) {
            return mService.retrievePendingSocketForServiceRecord(uuid, attributionSource);
            AdapterService service = getService();
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(
                            service, attributionSource,
                            "AdapterService retrievePendingSocketForServiceRecord")) {
                return null;
            }
            enforceBluetoothPrivilegedPermission(service);
            return service.retrievePendingSocketForServiceRecord(uuid, attributionSource);
        }

        @Override