Calling linkToDeath on binder in NRI constructor
Any NRI constructor that can possibly have a binder should call linkToDeath on that binder if present. Not doing so can result in a no such element exception when that NRI is removed. Bug: 184155022 Test: atest FrameworksNetTests atest FrameworksNetIntegrationTests atest CtsNetTestCasesLatestSdk Change-Id: I90d594e43474483c554d0d315ff7abb6f678e093
This commit is contained in:
@@ -5542,12 +5542,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
incrementRequestCountOrThrow(this);
|
||||
mCallbackFlags = callbackFlags;
|
||||
mCallingAttributionTag = callingAttributionTag;
|
||||
|
||||
try {
|
||||
mBinder.linkToDeath(this, 0);
|
||||
} catch (RemoteException e) {
|
||||
binderDied();
|
||||
}
|
||||
linkDeathRecipient();
|
||||
}
|
||||
|
||||
NetworkRequestInfo(@NonNull final NetworkRequestInfo nri,
|
||||
@@ -5585,6 +5580,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
incrementRequestCountOrThrow(this);
|
||||
mCallbackFlags = nri.mCallbackFlags;
|
||||
mCallingAttributionTag = nri.mCallingAttributionTag;
|
||||
linkDeathRecipient();
|
||||
}
|
||||
|
||||
NetworkRequestInfo(int asUid, @NonNull final NetworkRequest r) {
|
||||
@@ -5613,8 +5609,18 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
return Collections.unmodifiableList(tempRequests);
|
||||
}
|
||||
|
||||
void linkDeathRecipient() {
|
||||
if (null != mBinder) {
|
||||
try {
|
||||
mBinder.linkToDeath(this, 0);
|
||||
} catch (RemoteException e) {
|
||||
binderDied();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void unlinkDeathRecipient() {
|
||||
if (mBinder != null) {
|
||||
if (null != mBinder) {
|
||||
mBinder.unlinkToDeath(this, 0);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user