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

Commit 74971c75 authored by Paul Jensen's avatar Paul Jensen Committed by Android (Google) Code Review
Browse files

Merge "Remove needless locking of mRulesLock that caused deadlocks." into lmp-dev

parents acc0d6de f9ee0e50
Loading
Loading
Loading
Loading
+13 −16
Original line number Diff line number Diff line
@@ -979,14 +979,12 @@ public class ConnectivityService extends IConnectivityManager.Stub {
        enforceAccessPermission();
        final int uid = Binder.getCallingUid();
        final ArrayList<NetworkInfo> result = Lists.newArrayList();
        synchronized (mRulesLock) {
        for (int networkType = 0; networkType <= ConnectivityManager.MAX_NETWORK_TYPE;
                networkType++) {
            if (getNetworkInfoForType(networkType) != null) {
                result.add(getFilteredNetworkInfo(networkType, uid));
            }
        }
        }
        return result.toArray(new NetworkInfo[result.size()]);
    }

@@ -1078,7 +1076,6 @@ public class ConnectivityService extends IConnectivityManager.Stub {
        enforceAccessPermission();
        final int uid = Binder.getCallingUid();
        final ArrayList<NetworkState> result = Lists.newArrayList();
        synchronized (mRulesLock) {
        for (int networkType = 0; networkType <= ConnectivityManager.MAX_NETWORK_TYPE;
                networkType++) {
            if (getNetworkInfoForType(networkType) != null) {
@@ -1088,7 +1085,6 @@ public class ConnectivityService extends IConnectivityManager.Stub {
                result.add(new NetworkState(info, lp, netcap));
            }
        }
        }
        return result.toArray(new NetworkState[result.size()]);
    }

@@ -4132,8 +4128,9 @@ public class ConnectivityService extends IConnectivityManager.Stub {
        if (networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED)
                == false) {
            final int uidRules;
            final int uid = Binder.getCallingUid();
            synchronized(mRulesLock) {
                uidRules = mUidRules.get(Binder.getCallingUid(), RULE_ALLOW_ALL);
                uidRules = mUidRules.get(uid, RULE_ALLOW_ALL);
            }
            if ((uidRules & RULE_REJECT_METERED) != 0) {
                // we could silently fail or we can filter the available nets to only give