ConnectivityService: safer locking
This path changes a dangerous lock path in reportNetworkConnectivity(). This methods is called outside of the main ConnectivityService handler and takes a lock on a specific NetworkAgentInfo whose connectivity status is being reported. While this lock is held, reportNetworkConnectivity() goes on and query the network policy state for that network, which may ends into NetworkPolicyManagerService. Instead, the lock on NetworkAgentInfo is only held long enough to make a copy of LinkProperties, which is then passed to NetworkPolicyManagerService without that lock. Bug: 36902662 Test: could not repro b/36902662, reportNetworkConnectivity() works. $ runtest frameworks-net Change-Id: Iac4b75bcecbdddb0ac695c8b1a87ae755f62f47f
Loading
Please register or sign in to comment