Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 89e4c8e2 authored by Cody Kesting's avatar Cody Kesting
Browse files

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
Merged-In: I20d0cad5f902708d366aa703c2893b0ea3e55052
(cherry picked from commit 4787c9bc)
parent f05bfa91
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -8042,8 +8042,10 @@ public class ConnectivityService extends IConnectivityManager.Stub

        final NetworkRequestInfo nri = cbInfo.mRequestInfo;

        if (uid != nri.mUid) {
            if (VDBG) loge("Different uid than registrant attempting to unregister cb");
        // Caller's UID must either be the registrants (if they are unregistering) or the System's
        // (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;
        }