Merge "Only pass the NRI for removal in NRI#binderDied"

This commit is contained in:
James Mattis 2021-07-08 23:54:46 +00:00 • committed by Gerrit Code Review
commit 24fa1d7a8f

View file

@ -4221,13 +4221,16 @@ public class ConnectivityService extends IConnectivityManager.Stub
private void handleRemoveNetworkRequest(@NonNull final NetworkRequestInfo nri) {
ensureRunningOnConnectivityServiceThread();
nri.unlinkDeathRecipient();
for (final NetworkRequest req : nri.mRequests) {
mNetworkRequests.remove(req);
if (null == mNetworkRequests.remove(req)) {
logw("Attempted removal of untracked request " + req + " for nri " + nri);
continue;
}
if (req.isListen()) {
removeListenRequestFromNetworks(req);
}
}
nri.unlinkDeathRecipient();
if (mDefaultNetworkRequests.remove(nri)) {
// If this request was one of the defaults, then the UID rules need to be updated
// WARNING : if the app(s) for which this network request is the default are doing
@ -5905,8 +5908,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
@Override
public void binderDied() {
log("ConnectivityService NetworkRequestInfo binderDied(" +
mRequests + ", " + mBinder + ")");
releaseNetworkRequests(mRequests);
"uid/pid:" + mUid + "/" + mPid + ", " + mBinder + ")");
mHandler.post(() -> handleRemoveNetworkRequest(this));
}
@Override
@ -6337,12 +6340,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
return mNextNetworkProviderId.getAndIncrement();
}
private void releaseNetworkRequests(List<NetworkRequest> networkRequests) {
for (int i = 0; i < networkRequests.size(); i++) {
releaseNetworkRequest(networkRequests.get(i));
}
}
@Override
public void releaseNetworkRequest(NetworkRequest networkRequest) {
ensureNetworkRequestHasType(networkRequest);