From 2b3b1429dbf67b91515ba53809900d5f6ca6ac60 Mon Sep 17 00:00:00 2001 From: Martin Brabham Date: Tue, 21 May 2019 17:15:44 -0700 Subject: [PATCH] DO NOT MERGE: ScanFilter: Fix argument sanitization logic. Bug: 132888204 Test: Manual Change-Id: Id8cadbbfac29aca97ccb83815795948b1bbf85a5 --- core/java/android/bluetooth/le/ScanFilter.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core/java/android/bluetooth/le/ScanFilter.java b/core/java/android/bluetooth/le/ScanFilter.java index 07ba2c6680a94..038994fb55357 100644 --- a/core/java/android/bluetooth/le/ScanFilter.java +++ b/core/java/android/bluetooth/le/ScanFilter.java @@ -590,6 +590,9 @@ public final class ScanFilter implements Parcelable { public @NonNull Builder setServiceSolicitationUuid( @Nullable ParcelUuid serviceSolicitationUuid) { mServiceSolicitationUuid = serviceSolicitationUuid; + if (serviceSolicitationUuid == null) { + mServiceSolicitationUuidMask = null; + } return this; } @@ -600,13 +603,16 @@ public final class ScanFilter implements Parcelable { * indicate a match is needed for the bit in {@code serviceSolicitationUuid}, and 0 to * ignore that bit. * + * @param serviceSolicitationUuid can only be null if solicitationUuidMask is null. + * @param solicitationUuidMask can be null or a mask with no restriction. + * * @throws IllegalArgumentException If {@code serviceSolicitationUuid} is {@code null} but * {@code serviceSolicitationUuidMask} is not {@code null}. */ public @NonNull Builder setServiceSolicitationUuid( @Nullable ParcelUuid serviceSolicitationUuid, @Nullable ParcelUuid solicitationUuidMask) { - if (mServiceSolicitationUuidMask != null && mServiceSolicitationUuid == null) { + if (solicitationUuidMask != null && serviceSolicitationUuid == null) { throw new IllegalArgumentException( "SolicitationUuid is null while SolicitationUuidMask is not null!"); }