Update CS helper for clearing NetworkCapabilities UIDs.
NetworkCapabilities needs to have its UIDs cleared (UID ranges, owner UID, and administrator UIDs) before it can be shared with apps via ConnectivityDiagnosticsCallback invocations. The previous helper used for clearing these values mutated the provided NetworkCapabilities. This is updated to instead return a sanitized copy of the provided NetworkCapabilities Bug: 148942124 Test: atest FrameworksNetTests Change-Id: I2431a6d273d0d73432919baf41b4f66397f4b7dc
This commit is contained in:
@@ -7879,8 +7879,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
@NonNull ConnectivityReportEvent reportEvent, @NonNull PersistableBundle extras) {
|
||||
final NetworkAgentInfo nai = reportEvent.mNai;
|
||||
final NetworkCapabilities networkCapabilities =
|
||||
new NetworkCapabilities(nai.networkCapabilities);
|
||||
clearNetworkCapabilitiesUids(networkCapabilities);
|
||||
getNetworkCapabilitiesWithoutUids(nai.networkCapabilities);
|
||||
final ConnectivityReport report =
|
||||
new ConnectivityReport(
|
||||
reportEvent.mNai.network,
|
||||
@@ -7904,8 +7903,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
@NonNull NetworkAgentInfo nai, long timestampMillis, int detectionMethod,
|
||||
@NonNull PersistableBundle extras) {
|
||||
final NetworkCapabilities networkCapabilities =
|
||||
new NetworkCapabilities(nai.networkCapabilities);
|
||||
clearNetworkCapabilitiesUids(networkCapabilities);
|
||||
getNetworkCapabilitiesWithoutUids(nai.networkCapabilities);
|
||||
final DataStallReport report =
|
||||
new DataStallReport(
|
||||
nai.network,
|
||||
@@ -7938,10 +7936,12 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
}
|
||||
}
|
||||
|
||||
private void clearNetworkCapabilitiesUids(@NonNull NetworkCapabilities nc) {
|
||||
nc.setUids(null);
|
||||
nc.setAdministratorUids(new int[0]);
|
||||
nc.setOwnerUid(Process.INVALID_UID);
|
||||
private NetworkCapabilities getNetworkCapabilitiesWithoutUids(@NonNull NetworkCapabilities nc) {
|
||||
final NetworkCapabilities sanitized = new NetworkCapabilities(nc);
|
||||
sanitized.setUids(null);
|
||||
sanitized.setAdministratorUids(new int[0]);
|
||||
sanitized.setOwnerUid(Process.INVALID_UID);
|
||||
return sanitized;
|
||||
}
|
||||
|
||||
private List<IConnectivityDiagnosticsCallback> getMatchingPermissionedCallbacks(
|
||||
|
||||
Reference in New Issue
Block a user