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

Commit 7defcc85 authored by Paul Jensen's avatar Paul Jensen Committed by Android Git Automerger
Browse files

am 1c637c5f: Merge "Remove needless locking of mRulesLock that caused deadlocks." into lmp-dev

* commit '1c637c5fef678a82fd1f2c380d41ed6ebcb5bf2e':
  Remove needless locking of mRulesLock that caused deadlocks.
parents d41c6204 74971c75
Loading
Loading
Loading
Loading
+13 −16
Original line number Original line Diff line number Diff line
@@ -979,14 +979,12 @@ public class ConnectivityService extends IConnectivityManager.Stub {
        enforceAccessPermission();
        enforceAccessPermission();
        final int uid = Binder.getCallingUid();
        final int uid = Binder.getCallingUid();
        final ArrayList<NetworkInfo> result = Lists.newArrayList();
        final ArrayList<NetworkInfo> result = Lists.newArrayList();
        synchronized (mRulesLock) {
        for (int networkType = 0; networkType <= ConnectivityManager.MAX_NETWORK_TYPE;
        for (int networkType = 0; networkType <= ConnectivityManager.MAX_NETWORK_TYPE;
                networkType++) {
                networkType++) {
            if (getNetworkInfoForType(networkType) != null) {
            if (getNetworkInfoForType(networkType) != null) {
                result.add(getFilteredNetworkInfo(networkType, uid));
                result.add(getFilteredNetworkInfo(networkType, uid));
            }
            }
        }
        }
        }
        return result.toArray(new NetworkInfo[result.size()]);
        return result.toArray(new NetworkInfo[result.size()]);
    }
    }


@@ -1078,7 +1076,6 @@ public class ConnectivityService extends IConnectivityManager.Stub {
        enforceAccessPermission();
        enforceAccessPermission();
        final int uid = Binder.getCallingUid();
        final int uid = Binder.getCallingUid();
        final ArrayList<NetworkState> result = Lists.newArrayList();
        final ArrayList<NetworkState> result = Lists.newArrayList();
        synchronized (mRulesLock) {
        for (int networkType = 0; networkType <= ConnectivityManager.MAX_NETWORK_TYPE;
        for (int networkType = 0; networkType <= ConnectivityManager.MAX_NETWORK_TYPE;
                networkType++) {
                networkType++) {
            if (getNetworkInfoForType(networkType) != null) {
            if (getNetworkInfoForType(networkType) != null) {
@@ -1088,7 +1085,6 @@ public class ConnectivityService extends IConnectivityManager.Stub {
                result.add(new NetworkState(info, lp, netcap));
                result.add(new NetworkState(info, lp, netcap));
            }
            }
        }
        }
        }
        return result.toArray(new NetworkState[result.size()]);
        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)
        if (networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED)
                == false) {
                == false) {
            final int uidRules;
            final int uidRules;
            final int uid = Binder.getCallingUid();
            synchronized(mRulesLock) {
            synchronized(mRulesLock) {
                uidRules = mUidRules.get(Binder.getCallingUid(), RULE_ALLOW_ALL);
                uidRules = mUidRules.get(uid, RULE_ALLOW_ALL);
            }
            }
            if ((uidRules & RULE_REJECT_METERED) != 0) {
            if ((uidRules & RULE_REJECT_METERED) != 0) {
                // we could silently fail or we can filter the available nets to only give
                // we could silently fail or we can filter the available nets to only give