Stop using mVpns in getConnectionOwnerUid.
Use data that is already available in ConnectivityService instead. The behaviour of the new implementation is slightly different from Q and R code when the permission check fails. - The old code would throw a SecurityException if an app that was not an active VPN called the method, and would return INVALID_UID if the connection belonged to a UID that was not subject to the VPN. - The new code returns INVALID_UID in both cases. This does not seem like a compatibility problem. The only case in which the code throws SecurityException is if the app is not a current VPN app, but the app already knows whether it is or not. The docs don't mention that the method SecurityException, either. Bug: 173331190 Test: atest FrameworksNetTests Test: atest HostsideVpnTests Change-Id: If3d031e74df33b5c97e12ebf02272faac6769d50
This commit is contained in:
@@ -8567,11 +8567,7 @@ public class ConnectivityServiceTest {
|
||||
final int myUid = Process.myUid();
|
||||
setupConnectionOwnerUidAsVpnApp(myUid, VpnManager.TYPE_VPN_PLATFORM);
|
||||
|
||||
try {
|
||||
mService.getConnectionOwnerUid(getTestConnectionInfo());
|
||||
fail("Expected SecurityException for non-VpnService app");
|
||||
} catch (SecurityException expected) {
|
||||
}
|
||||
assertEquals(INVALID_UID, mService.getConnectionOwnerUid(getTestConnectionInfo()));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -8579,11 +8575,7 @@ public class ConnectivityServiceTest {
|
||||
final int myUid = Process.myUid();
|
||||
setupConnectionOwnerUidAsVpnApp(myUid + 1, VpnManager.TYPE_VPN_SERVICE);
|
||||
|
||||
try {
|
||||
mService.getConnectionOwnerUid(getTestConnectionInfo());
|
||||
fail("Expected SecurityException for non-VpnService app");
|
||||
} catch (SecurityException expected) {
|
||||
}
|
||||
assertEquals(INVALID_UID, mService.getConnectionOwnerUid(getTestConnectionInfo()));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user