[AWARE] Add UID checking to WifiAwareNetworkSpecifier
Wifi Aware networks are per app - i.e. a requestor gets a dedicated network. Change verifies that the only the original requestor matches the created network (using UID). Bug: 36053921 Test: Integration (sl4a) tests Change-Id: I4ff3994731dd7ccb88e2bea333d1e6905b136f02
This commit is contained in:
@@ -1992,6 +1992,40 @@ public class ConnectivityServiceTest extends AndroidTestCase {
|
||||
}
|
||||
}
|
||||
|
||||
@SmallTest
|
||||
public void testNetworkSpecifierUidSpoofSecurityException() {
|
||||
class UidAwareNetworkSpecifier extends NetworkSpecifier implements Parcelable {
|
||||
@Override
|
||||
public boolean satisfiedBy(NetworkSpecifier other) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void assertValidFromUid(int requestorUid) {
|
||||
throw new SecurityException("failure");
|
||||
}
|
||||
|
||||
@Override
|
||||
public int describeContents() { return 0; }
|
||||
@Override
|
||||
public void writeToParcel(Parcel dest, int flags) {}
|
||||
}
|
||||
|
||||
mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI);
|
||||
mWiFiNetworkAgent.connect(false);
|
||||
|
||||
UidAwareNetworkSpecifier networkSpecifier = new UidAwareNetworkSpecifier();
|
||||
NetworkRequest networkRequest = newWifiRequestBuilder().setNetworkSpecifier(
|
||||
networkSpecifier).build();
|
||||
TestNetworkCallback networkCallback = new TestNetworkCallback();
|
||||
try {
|
||||
mCm.requestNetwork(networkRequest, networkCallback);
|
||||
fail("Network request with spoofed UID did not throw a SecurityException");
|
||||
} catch (SecurityException e) {
|
||||
// expected
|
||||
}
|
||||
}
|
||||
|
||||
@SmallTest
|
||||
public void testRegisterDefaultNetworkCallback() throws Exception {
|
||||
final TestNetworkCallback defaultNetworkCallback = new TestNetworkCallback();
|
||||
|
||||
Reference in New Issue
Block a user