diff options
| author | Benedict Wong <benedictwong@google.com> | 2021-05-14 23:00:21 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2021-05-14 23:00:21 +0000 |
| commit | e0ee346120dc9ce1932edced899cc01662bba751 (patch) | |
| tree | c271bfc919d96cf1cf9f3c372221c63a8326a9e0 /core/java/android | |
| parent | b4aec6206ffdcedaf32b4e97f49fc5206ca7b9ec (diff) | |
| parent | d9695aced3cb2c6c1cad646bd06d83af4d89357c (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.java | 24 |
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); } |
