Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bd4bd964 authored by Jayachandran C's avatar Jayachandran C
Browse files

QOS: Check for portRange validity before filter matching

Bug: 191810683
Test: Manual
      atest com.android.internal.telephony.dataconnection.QosCallbackTrackerTest
Change-Id: Iaad16f7efe4bfaea3abd296547b5c53426a29854
parent f4ecf18a
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -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);