From 7d6a49c9595093ae9b8b144bcca5869d2d5cb311 Mon Sep 17 00:00:00 2001 From: Ashwini Oruganti Date: Thu, 19 Nov 2020 16:00:23 -0800 Subject: [PATCH] ConnectivityServiceTest: Mark unaudited PendingIntents with FLAG_MUTABLE_UNAUDITED These PIs need an explicit mutability flag. This temporay flag is being used to mark these points in code and should be replaced ASAP. See go/immutable-pendingintents for more context. Bug: 160794467 Test: TH Exempt-From-Owner-Approval: noop change Change-Id: I963d0d737ecbd8ad07577f2fe93ba178419e7a5e --- .../server/ConnectivityServiceTest.java | 37 ++++++++++++++----- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/tests/net/java/com/android/server/ConnectivityServiceTest.java b/tests/net/java/com/android/server/ConnectivityServiceTest.java index 2758f6156c..20f490a6ae 100644 --- a/tests/net/java/com/android/server/ConnectivityServiceTest.java +++ b/tests/net/java/com/android/server/ConnectivityServiceTest.java @@ -2529,7 +2529,10 @@ public class ConnectivityServiceTest { @Test public void testNoMutableNetworkRequests() throws Exception { - PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext, 0, new Intent("a"), 0); + // TODO(b/173157160) Please replace FLAG_MUTABLE_UNAUDITED below + // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. + PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext, 0, new Intent("a"), + PendingIntent.FLAG_MUTABLE_UNAUDITED); NetworkRequest request1 = new NetworkRequest.Builder() .addCapability(NET_CAPABILITY_VALIDATED) .build(); @@ -3189,17 +3192,21 @@ public class ConnectivityServiceTest { assertThrows(SecurityException.class, () -> mCm.registerNetworkCallback(r, new NetworkCallback())); + // TODO(b/173157160) Please replace FLAG_MUTABLE_UNAUDITED below + // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. assertThrows(SecurityException.class, () -> mCm.registerNetworkCallback(r, PendingIntent.getService( - mServiceContext, 0, new Intent(), 0))); + mServiceContext, 0, new Intent(), PendingIntent.FLAG_MUTABLE_UNAUDITED))); // Requesting a Network with signal strength should get IllegalArgumentException. assertThrows(IllegalArgumentException.class, () -> mCm.requestNetwork(r, new NetworkCallback())); + // TODO(b/173157160) Please replace FLAG_MUTABLE_UNAUDITED below + // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. assertThrows(IllegalArgumentException.class, () -> mCm.requestNetwork(r, PendingIntent.getService( - mServiceContext, 0, new Intent(), 0))); + mServiceContext, 0, new Intent(), PendingIntent.FLAG_MUTABLE_UNAUDITED))); } @Test @@ -4663,12 +4670,16 @@ public class ConnectivityServiceTest { } j = 0; while (j++ < INTENTS / 2) { - PendingIntent pi = PendingIntent.getBroadcast(mContext, 0, new Intent("a" + j), 0); + // TODO(b/173157160) Please replace FLAG_MUTABLE_UNAUDITED below + // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. + PendingIntent pi = PendingIntent.getBroadcast(mContext, 0, new Intent("a" + j), PendingIntent.FLAG_MUTABLE_UNAUDITED); mCm.requestNetwork(networkRequest, pi); registered.add(pi); } while (j++ < INTENTS) { - PendingIntent pi = PendingIntent.getBroadcast(mContext, 0, new Intent("b" + j), 0); + // TODO(b/173157160) Please replace FLAG_MUTABLE_UNAUDITED below + // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. + PendingIntent pi = PendingIntent.getBroadcast(mContext, 0, new Intent("b" + j), PendingIntent.FLAG_MUTABLE_UNAUDITED); mCm.registerNetworkCallback(networkRequest, pi); registered.add(pi); } @@ -4682,11 +4693,15 @@ public class ConnectivityServiceTest { ); assertThrows(TooManyRequestsException.class, () -> mCm.requestNetwork(networkRequest, - PendingIntent.getBroadcast(mContext, 0, new Intent("c"), 0)) + // TODO(b/173157160) Please replace FLAG_MUTABLE_UNAUDITED below + // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. + PendingIntent.getBroadcast(mContext, 0, new Intent("c"), PendingIntent.FLAG_MUTABLE_UNAUDITED)) ); assertThrows(TooManyRequestsException.class, () -> mCm.registerNetworkCallback(networkRequest, - PendingIntent.getBroadcast(mContext, 0, new Intent("d"), 0)) + // TODO(b/173157160) Please replace FLAG_MUTABLE_UNAUDITED below + // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. + PendingIntent.getBroadcast(mContext, 0, new Intent("d"), PendingIntent.FLAG_MUTABLE_UNAUDITED)) ); for (Object o : registered) { @@ -4715,16 +4730,20 @@ public class ConnectivityServiceTest { waitForIdle(); for (int i = 0; i < MAX_REQUESTS; i++) { + // TODO(b/173157160) Please replace FLAG_MUTABLE_UNAUDITED below + // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. PendingIntent pendingIntent = - PendingIntent.getBroadcast(mContext, 0, new Intent("e" + i), 0); + PendingIntent.getBroadcast(mContext, 0, new Intent("e" + i), PendingIntent.FLAG_MUTABLE_UNAUDITED); mCm.requestNetwork(networkRequest, pendingIntent); mCm.unregisterNetworkCallback(pendingIntent); } waitForIdle(); for (int i = 0; i < MAX_REQUESTS; i++) { + // TODO(b/173157160) Please replace FLAG_MUTABLE_UNAUDITED below + // with either FLAG_IMMUTABLE (recommended) or FLAG_MUTABLE. PendingIntent pendingIntent = - PendingIntent.getBroadcast(mContext, 0, new Intent("f" + i), 0); + PendingIntent.getBroadcast(mContext, 0, new Intent("f" + i), PendingIntent.FLAG_MUTABLE_UNAUDITED); mCm.registerNetworkCallback(networkRequest, pendingIntent); mCm.unregisterNetworkCallback(pendingIntent); }