summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorBenedict Wong <benedictwong@google.com>2021-05-14 23:00:21 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2021-05-14 23:00:21 +0000
commite0ee346120dc9ce1932edced899cc01662bba751 (patch)
treec271bfc919d96cf1cf9f3c372221c63a8326a9e0 /core/java/android
parentb4aec6206ffdcedaf32b4e97f49fc5206ca7b9ec (diff)
parentd9695aced3cb2c6c1cad646bd06d83af4d89357c (diff)
Merge "Make VcnTransportInfo unparcel to null if no data contained" into sc-dev
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/net/vcn/VcnTransportInfo.java24
1 files changed, 22 insertions, 2 deletions
diff --git a/core/java/android/net/vcn/VcnTransportInfo.java b/core/java/android/net/vcn/VcnTransportInfo.java
index 1f1818420b56..25a257423ce2 100644
--- a/core/java/android/net/vcn/VcnTransportInfo.java
+++ b/core/java/android/net/vcn/VcnTransportInfo.java
@@ -16,11 +16,12 @@
package android.net.vcn;
-import static android.net.NetworkCapabilities.REDACT_NONE;
+import static android.net.NetworkCapabilities.REDACT_FOR_NETWORK_SETTINGS;
import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID;
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.net.NetworkCapabilities;
import android.net.TransportInfo;
import android.net.wifi.WifiInfo;
import android.os.Parcel;
@@ -108,13 +109,24 @@ public class VcnTransportInfo implements TransportInfo, Parcelable {
@Override
@NonNull
public TransportInfo makeCopy(long redactions) {
+ if ((redactions & NetworkCapabilities.REDACT_FOR_NETWORK_SETTINGS) != 0) {
+ return new VcnTransportInfo(null, INVALID_SUBSCRIPTION_ID);
+ }
+
return new VcnTransportInfo(
(mWifiInfo == null) ? null : mWifiInfo.makeCopy(redactions), mSubId);
}
@Override
public long getApplicableRedactions() {
- return (mWifiInfo == null) ? REDACT_NONE : mWifiInfo.getApplicableRedactions();
+ long redactions = REDACT_FOR_NETWORK_SETTINGS;
+
+ // Add additional wifi redactions if necessary
+ if (mWifiInfo != null) {
+ redactions |= mWifiInfo.getApplicableRedactions();
+ }
+
+ return redactions;
}
/** {@inheritDoc} */
@@ -135,6 +147,14 @@ public class VcnTransportInfo implements TransportInfo, Parcelable {
public VcnTransportInfo createFromParcel(Parcel in) {
final int subId = in.readInt();
final WifiInfo wifiInfo = in.readParcelable(null);
+
+ // If all fields are their null values, return null TransportInfo to avoid
+ // leaking information about this being a VCN Network (instead of macro
+ // cellular, etc)
+ if (wifiInfo == null && subId == INVALID_SUBSCRIPTION_ID) {
+ return null;
+ }
+
return new VcnTransportInfo(wifiInfo, subId);
}