commit | f405adead7d13b2fec7164356bd534e9ae8487fe | [log] [tgz] |
---|---|---|
author | Tyler Wear <twear@quicinc.com> | Wed Sep 29 00:55:19 2021 +0000 |
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | Wed Sep 29 00:55:19 2021 +0000 |
tree | d22cbf0263a5ea4d5e34a5397a7db78844219063 | |
parent | d4ec13a40001e66d0086efd6513f5daa0cf68d81 [diff] | |
parent | 3ec7e6d9fb2b169cdfc2a4381cec5daba33b8b8c [diff] |
Fix NetworkOffer Death link does not exist am: 3ec7e6d9fb Original change: https://android-review.googlesource.com/c/platform/packages/modules/Connectivity/+/1799528 Change-Id: Ic1b0cb9e06d05d334cedd4b50bc7e8cf91dcc59a
diff --git a/service/src/com/android/server/ConnectivityService.java b/service/src/com/android/server/ConnectivityService.java index 47c1acb..bf3d996 100644 --- a/service/src/com/android/server/ConnectivityService.java +++ b/service/src/com/android/server/ConnectivityService.java
@@ -6908,7 +6908,11 @@ if (DBG) { log("unregister offer from providerId " + noi.offer.providerId + " : " + noi.offer); } - mNetworkOffers.remove(noi); + + // If the provider removes the offer and dies immediately afterwards this + // function may be called twice in a row, but the array will no longer contain + // the offer. + if (!mNetworkOffers.remove(noi)) return; noi.offer.callback.asBinder().unlinkToDeath(noi, 0 /* flags */); }