Allow the System UID to unregister ConnDiags CBs.
This CL updates ConnectivityService to allow the System's UID to unregister ConnectivityDiagnostics callbacks. Preivously, only the registrant was allowed to unregister them - this caused problems for callbacks that were attempted to be unregistered via binderDied() when the registrant app dies. Bug: 159912975 Bug: 174713659 Test: manually verified Change-Id: I20d0cad5f902708d366aa703c2893b0ea3e55052
This commit is contained in:
@@ -8092,8 +8092,10 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
|
|
||||||
final NetworkRequestInfo nri = cbInfo.mRequestInfo;
|
final NetworkRequestInfo nri = cbInfo.mRequestInfo;
|
||||||
|
|
||||||
if (uid != nri.mUid) {
|
// Caller's UID must either be the registrants (if they are unregistering) or the System's
|
||||||
if (VDBG) loge("Different uid than registrant attempting to unregister cb");
|
// (if the Binder died)
|
||||||
|
if (uid != nri.mUid && uid != Process.SYSTEM_UID) {
|
||||||
|
if (DBG) loge("Uid(" + uid + ") not registrant's (" + nri.mUid + ") or System's");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user