QOS: Check for portRange validity before filter matching

Bug: 191810683
Test: Manual
      atest com.android.internal.telephony.dataconnection.QosCallbackTrackerTest
Change-Id: Iaad16f7efe4bfaea3abd296547b5c53426a29854
This commit is contained in:
Jayachandran C
2021-06-25 18:07:54 -07:00
parent f4ecf18a39
commit bd4bd964f4

View File

@@ -57,6 +57,12 @@ public final class QosBearerFilter implements Parcelable {
public static final int QOS_PROTOCOL_UDP = android.hardware.radio.V1_6.QosProtocol.UDP;
public static final int QOS_PROTOCOL_ESP = android.hardware.radio.V1_6.QosProtocol.ESP;
public static final int QOS_PROTOCOL_AH = android.hardware.radio.V1_6.QosProtocol.AH;
public static final int QOS_MIN_PORT = android.hardware.radio.V1_6.QosPortRange.MIN;
/**
* Hardcoded inplace of android.hardware.radio.V1_6.QosPortRange.MAX as it
* returns -1 due to uint16_t to int conversion in java. (TODO: Fix the HAL)
*/
public static final int QOS_MAX_PORT = 65535; // android.hardware.radio.V1_6.QosPortRange.MIN;
@QosProtocol
private int protocol;
@@ -229,6 +235,12 @@ public final class QosBearerFilter implements Parcelable {
return end;
}
public boolean isValid() {
return start >= QOS_MIN_PORT && start <= QOS_MAX_PORT
&& end >= QOS_MIN_PORT && end <= QOS_MAX_PORT
&& start <= end;
}
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
dest.writeInt(start);