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

Commit 14464a12 authored by James Mattis's avatar James Mattis
Browse files

Optimization when looking up requests for release

Including an optimzation in handleReleaseNetworkRequest when
looking up a request so that in the chance an app shuts down prior to
the request being released, it doesn't cause errors when looking
validating that apps uid->package name.

Bug: 178729499
Test: atest FrameworksNetTests
atest ExtServicesUnitTests on CF and making sure no remote exceptions.

Change-Id: I2c49511a1385b47fba075b2794685ae2bc80abba
parent 4ea84f0b
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -3721,7 +3721,12 @@ public class ConnectivityService extends IConnectivityManager.Stub
        // Looking up the app passed param request in mRequests isn't possible since it may return
        // null for a request managed by a per-app default. Therefore use getNriForAppRequest() to
        // do the lookup since that will also find per-app default managed requests.
        final NetworkRequestInfo nri = getNriForAppRequest(request);
        // Additionally, this lookup needs to be relatively fast (hence the lookup optimization)
        // to avoid potential race conditions when validating a package->uid mapping when sending
        // the callback on the very low-chance that an application shuts down prior to the callback
        // being sent.
        final NetworkRequestInfo nri = mNetworkRequests.get(request) != null
                ? mNetworkRequests.get(request) : getNriForAppRequest(request);

        if (nri != null) {
            if (Process.SYSTEM_UID != callingUid && Process.NETWORK_STACK_UID != callingUid