From f136443be0c2c577a740fa654d2c0199eadbd05e Mon Sep 17 00:00:00 2001 From: Chalard Jean Date: Thu, 8 Apr 2021 17:37:36 +0900 Subject: [PATCH] Fix a bug where updates of offers won't find existing offers .equals() only work on cross-process Binder instances if casted to a Binder instance first. Bug: 184281544 Test: ConnectivityServiceTest. CTS test for this specific issue to come Change-Id: I7b9e0df21a3cca59659867a75792289ddee2f1d7 --- services/core/java/com/android/server/ConnectivityService.java | 2 +- .../core/java/com/android/server/connectivity/NetworkOffer.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 922b21a497..b4e0d4942d 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -6601,7 +6601,7 @@ public class ConnectivityService extends IConnectivityManager.Stub @NonNull final INetworkOfferCallback callback) { ensureRunningOnConnectivityServiceThread(); for (final NetworkOfferInfo noi : mNetworkOffers) { - if (noi.offer.callback.equals(callback)) return noi; + if (noi.offer.callback.asBinder().equals(callback.asBinder())) return noi; } return null; } diff --git a/services/core/java/com/android/server/connectivity/NetworkOffer.java b/services/core/java/com/android/server/connectivity/NetworkOffer.java index 5336593b40..92bb33186b 100644 --- a/services/core/java/com/android/server/connectivity/NetworkOffer.java +++ b/services/core/java/com/android/server/connectivity/NetworkOffer.java @@ -133,7 +133,7 @@ public class NetworkOffer implements NetworkRanker.Scoreable { * @param previousOffer the previous offer */ public void migrateFrom(@NonNull final NetworkOffer previousOffer) { - if (!callback.equals(previousOffer.callback)) { + if (!callback.asBinder().equals(previousOffer.callback.asBinder())) { throw new IllegalArgumentException("Can only migrate from a previous version of" + " the same offer"); }