diff --git a/android/app/src/com/android/bluetooth/Utils.java b/android/app/src/com/android/bluetooth/Utils.java index 8ce32f5d06f368c7a889ea681b652535fc32d083..ca80330aadf53e80908c1cfd79c55337cf744799 100644 --- a/android/app/src/com/android/bluetooth/Utils.java +++ b/android/app/src/com/android/bluetooth/Utils.java @@ -548,10 +548,10 @@ public final class Utils { } // STOPSHIP(b/188391719): enable this security enforcement // attributionSource.enforceCallingUid(); - AttributionSource currentAttribution = new AttributionSource - .Builder(context.getAttributionSource()) - .setNext(attributionSource) - .build(); + AttributionSource currentAttribution = + new AttributionSource.Builder(context.getAttributionSource()) + .setNext(Objects.requireNonNull(attributionSource)) + .build(); PermissionManager pm = context.getSystemService(PermissionManager.class); if (pm == null) { return false; @@ -823,10 +823,10 @@ public final class Utils { Log.e(TAG, "Permission denial: Location is off."); return false; } - AttributionSource currentAttribution = new AttributionSource - .Builder(context.getAttributionSource()) - .setNext(attributionSource) - .build(); + AttributionSource currentAttribution = + new AttributionSource.Builder(context.getAttributionSource()) + .setNext(Objects.requireNonNull(attributionSource)) + .build(); // STOPSHIP(b/188391719): enable this security enforcement // attributionSource.enforceCallingUid(); PermissionManager pm = context.getSystemService(PermissionManager.class); @@ -857,10 +857,10 @@ public final class Utils { return false; } - final AttributionSource currentAttribution = new AttributionSource - .Builder(context.getAttributionSource()) - .setNext(attributionSource) - .build(); + final AttributionSource currentAttribution = + new AttributionSource.Builder(context.getAttributionSource()) + .setNext(Objects.requireNonNull(attributionSource)) + .build(); // STOPSHIP(b/188391719): enable this security enforcement // attributionSource.enforceCallingUid(); PermissionManager pm = context.getSystemService(PermissionManager.class); @@ -895,10 +895,10 @@ public final class Utils { return false; } - AttributionSource currentAttribution = new AttributionSource - .Builder(context.getAttributionSource()) - .setNext(attributionSource) - .build(); + AttributionSource currentAttribution = + new AttributionSource.Builder(context.getAttributionSource()) + .setNext(Objects.requireNonNull(attributionSource)) + .build(); // STOPSHIP(b/188391719): enable this security enforcement // attributionSource.enforceCallingUid(); PermissionManager pm = context.getSystemService(PermissionManager.class); diff --git a/android/app/tests/unit/src/com/android/bluetooth/UtilsTest.java b/android/app/tests/unit/src/com/android/bluetooth/UtilsTest.java index b4d73bc5c18b881ac020542bedeb0b760e095cb2..2b3d17ee130618fd979b88271a936d0aa9dfdff3 100644 --- a/android/app/tests/unit/src/com/android/bluetooth/UtilsTest.java +++ b/android/app/tests/unit/src/com/android/bluetooth/UtilsTest.java @@ -120,10 +120,12 @@ public class UtilsTest { boolean enabledStatus = locationManager.isLocationEnabledForUser(userHandle); locationManager.setLocationEnabledForUser(false, userHandle); - assertThat(Utils.checkCallerHasCoarseLocation(context, null, userHandle)).isFalse(); + assertThat(Utils.checkCallerHasCoarseLocation( + context, context.getAttributionSource(), userHandle)) + .isFalse(); locationManager.setLocationEnabledForUser(true, userHandle); - Utils.checkCallerHasCoarseLocation(context, null, userHandle); + Utils.checkCallerHasCoarseLocation(context, context.getAttributionSource(), userHandle); if (!enabledStatus) { locationManager.setLocationEnabledForUser(false, userHandle); } @@ -137,10 +139,13 @@ public class UtilsTest { boolean enabledStatus = locationManager.isLocationEnabledForUser(userHandle); locationManager.setLocationEnabledForUser(false, userHandle); - assertThat(Utils.checkCallerHasCoarseOrFineLocation(context, null, userHandle)).isFalse(); + assertThat(Utils.checkCallerHasCoarseOrFineLocation( + context, context.getAttributionSource(), userHandle)) + .isFalse(); locationManager.setLocationEnabledForUser(true, userHandle); - Utils.checkCallerHasCoarseOrFineLocation(context, null, userHandle); + Utils.checkCallerHasCoarseOrFineLocation( + context, context.getAttributionSource(), userHandle); if (!enabledStatus) { locationManager.setLocationEnabledForUser(false, userHandle); } diff --git a/service/src/com/android/server/bluetooth/BtPermissionUtils.java b/service/src/com/android/server/bluetooth/BtPermissionUtils.java index c68f25b65fb8e84356103a32082d415a485e2920..b3ba3b013dd0cd5127936e8157c2037492139863 100644 --- a/service/src/com/android/server/bluetooth/BtPermissionUtils.java +++ b/service/src/com/android/server/bluetooth/BtPermissionUtils.java @@ -86,7 +86,9 @@ class BtPermissionUtils { String message) { final String permission = BLUETOOTH_CONNECT; AttributionSource currentSource = - new AttributionSource.Builder(ctx.getAttributionSource()).setNext(source).build(); + new AttributionSource.Builder(ctx.getAttributionSource()) + .setNext(Objects.requireNonNull(source)) + .build(); final int result = permissionManager.checkPermissionForDataDeliveryFromDataSource( permission, currentSource, message);