]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
decode/mpls/tests: improve pkt handling; cleanups
authorVictor Julien <vjulien@oisf.net>
Tue, 25 Oct 2022 07:16:27 +0000 (09:16 +0200)
committerVictor Julien <vjulien@oisf.net>
Tue, 25 Oct 2022 08:39:10 +0000 (10:39 +0200)
src/decode-mpls.c

index dc724762b35ce8010893206944a90e333925db67..09b7c14b1d03159974243bf5ec2701390d7a8128 100644 (file)
@@ -139,84 +139,74 @@ end:
 
 static int DecodeMPLSTestHeaderTooSmall(void)
 {
-    int ret = 1;
-
     /* A packet that is too small to have a complete MPLS header. */
     uint8_t pkt[] = {
         0x00, 0x00, 0x11
     };
 
     Packet *p = PacketGetFromAlloc();
-    if (unlikely(p == NULL)) {
-        return 0;
-    }
+    FAIL_IF_NULL(p);
     ThreadVars tv;
     DecodeThreadVars dtv;
-
     memset(&dtv, 0, sizeof(DecodeThreadVars));
     memset(&tv,  0, sizeof(ThreadVars));
 
     DecodeMPLS(&tv, &dtv, p, pkt, sizeof(pkt));
+    FAIL_IF(!ENGINE_ISSET_EVENT(p, MPLS_HEADER_TOO_SMALL));
 
-    if (!ENGINE_ISSET_EVENT(p, MPLS_HEADER_TOO_SMALL)) {
-        ret = 0;
-    }
-
-    SCFree(p);
-    return ret;
+    PacketFree(p);
+    PASS;
 }
 
 static int DecodeMPLSTestPacketTooSmall(void)
 {
     ThreadVars tv;
     DecodeThreadVars dtv;
-
     memset(&dtv, 0, sizeof(DecodeThreadVars));
     memset(&tv,  0, sizeof(ThreadVars));
 
-    Packet *p0 = SCCalloc(1, SIZE_OF_PACKET);
-    memset(p0, 0, SIZE_OF_PACKET);
+    Packet *p = PacketGetFromAlloc();
+    FAIL_IF_NULL(p);
     uint8_t pkt0[] = { 0x00, 0x01, 0x51, 0xff };
-    DecodeMPLS(&tv, &dtv, p0, pkt0, sizeof(pkt0));
-    FAIL_IF_NOT(ENGINE_ISSET_EVENT(p0, MPLS_PKT_TOO_SMALL));
-    SCFree(p0);
+    DecodeMPLS(&tv, &dtv, p, pkt0, sizeof(pkt0));
+    FAIL_IF_NOT(ENGINE_ISSET_EVENT(p, MPLS_PKT_TOO_SMALL));
+    PacketFree(p);
 
-    Packet *p1 = SCCalloc(1, SIZE_OF_PACKET);
-    FAIL_IF_NULL(p1);
+    p = PacketGetFromAlloc();
+    FAIL_IF_NULL(p);
     uint8_t pkt1[] = { 0x00, 0x01, 0x51, 0xff, 0x45 };
-    DecodeMPLS(&tv, &dtv, p1, pkt1, sizeof(pkt1));
-    FAIL_IF_NOT(ENGINE_ISSET_EVENT(p1, MPLS_PKT_TOO_SMALL));
-    SCFree(p1);
+    DecodeMPLS(&tv, &dtv, p, pkt1, sizeof(pkt1));
+    FAIL_IF_NOT(ENGINE_ISSET_EVENT(p, MPLS_PKT_TOO_SMALL));
+    PacketFree(p);
 
-    Packet *p2 = SCCalloc(1, SIZE_OF_PACKET);
-    FAIL_IF_NULL(p2);
+    p = PacketGetFromAlloc();
+    FAIL_IF_NULL(p);
     uint8_t pkt2[] = { 0x00, 0x01, 0x51, 0xff, 0x45, 0x01 };
-    DecodeMPLS(&tv, &dtv, p2, pkt2, sizeof(pkt2));
-    FAIL_IF_NOT(ENGINE_ISSET_EVENT(p2, MPLS_PKT_TOO_SMALL));
-    SCFree(p2);
+    DecodeMPLS(&tv, &dtv, p, pkt2, sizeof(pkt2));
+    FAIL_IF_NOT(ENGINE_ISSET_EVENT(p, MPLS_PKT_TOO_SMALL));
+    PacketFree(p);
 
-    Packet *p3 = SCCalloc(1, SIZE_OF_PACKET);
-    FAIL_IF_NULL(p3);
+    p = PacketGetFromAlloc();
+    FAIL_IF_NULL(p);
     uint8_t pkt3[] = { 0x00, 0x01, 0x51, 0xff, 0x45, 0x01, 0x02 };
-    DecodeMPLS(&tv, &dtv, p3, pkt3, sizeof(pkt3));
-    FAIL_IF_NOT(ENGINE_ISSET_EVENT(p3, MPLS_PKT_TOO_SMALL));
-    SCFree(p3);
+    DecodeMPLS(&tv, &dtv, p, pkt3, sizeof(pkt3));
+    FAIL_IF_NOT(ENGINE_ISSET_EVENT(p, MPLS_PKT_TOO_SMALL));
+    PacketFree(p);
 
     // This should not create a too small event is it has one more byte
     // than required.
-    Packet *p4 = SCCalloc(1, SIZE_OF_PACKET);
-    FAIL_IF_NULL(p4);
+    p = PacketGetFromAlloc();
+    FAIL_IF_NULL(p);
     uint8_t pkt4[] = { 0x00, 0x01, 0x51, 0xff, 0x45, 0x01, 0x02, 0x03 };
-    DecodeMPLS(&tv, &dtv, p4, pkt4, sizeof(pkt4));
-    FAIL_IF(ENGINE_ISSET_EVENT(p4, MPLS_PKT_TOO_SMALL));
-    SCFree(p4);
+    DecodeMPLS(&tv, &dtv, p, pkt4, sizeof(pkt4));
+    FAIL_IF(ENGINE_ISSET_EVENT(p, MPLS_PKT_TOO_SMALL));
+    PacketFree(p);
 
     PASS;
 }
 
 static int DecodeMPLSTestBadLabelRouterAlert(void)
 {
-    int ret = 1;
     uint8_t pkt[] = {
         0x00, 0x00, 0x11, 0xff, 0x45, 0x00, 0x00, 0x64,
         0x00, 0x0a, 0x00, 0x00, 0xff, 0x01, 0xa5, 0x6a,
@@ -234,9 +224,7 @@ static int DecodeMPLSTestBadLabelRouterAlert(void)
     };
 
     Packet *p = PacketGetFromAlloc();
-    if (unlikely(p == NULL)) {
-        return 0;
-    }
+    FAIL_IF_NULL(p);
     ThreadVars tv;
     DecodeThreadVars dtv;
 
@@ -244,18 +232,14 @@ static int DecodeMPLSTestBadLabelRouterAlert(void)
     memset(&tv,  0, sizeof(ThreadVars));
 
     DecodeMPLS(&tv, &dtv, p, pkt, sizeof(pkt));
+    FAIL_IF(!ENGINE_ISSET_EVENT(p, MPLS_BAD_LABEL_ROUTER_ALERT));
 
-    if (!ENGINE_ISSET_EVENT(p, MPLS_BAD_LABEL_ROUTER_ALERT)) {
-        ret = 0;
-    }
-
-    SCFree(p);
-    return ret;
+    PacketFree(p);
+    PASS;
 }
 
 static int DecodeMPLSTestBadLabelImplicitNull(void)
 {
-    int ret = 1;
     uint8_t pkt[] = {
         0x00, 0x00, 0x31, 0xff, 0x45, 0x00, 0x00, 0x64,
         0x00, 0x0a, 0x00, 0x00, 0xff, 0x01, 0xa5, 0x6a,
@@ -273,28 +257,21 @@ static int DecodeMPLSTestBadLabelImplicitNull(void)
     };
 
     Packet *p = PacketGetFromAlloc();
-    if (unlikely(p == NULL)) {
-        return 0;
-    }
+    FAIL_IF_NULL(p);
     ThreadVars tv;
     DecodeThreadVars dtv;
-
     memset(&dtv, 0, sizeof(DecodeThreadVars));
     memset(&tv,  0, sizeof(ThreadVars));
 
     DecodeMPLS(&tv, &dtv, p, pkt, sizeof(pkt));
+    FAIL_IF(!ENGINE_ISSET_EVENT(p, MPLS_BAD_LABEL_IMPLICIT_NULL));
 
-    if (!ENGINE_ISSET_EVENT(p, MPLS_BAD_LABEL_IMPLICIT_NULL)) {
-        ret = 0;
-    }
-
-    SCFree(p);
-    return ret;
+    PacketFree(p);
+    PASS;
 }
 
 static int DecodeMPLSTestBadLabelReserved(void)
 {
-    int ret = 1;
     uint8_t pkt[] = {
         0x00, 0x00, 0x51, 0xff, 0x45, 0x00, 0x00, 0x64,
         0x00, 0x0a, 0x00, 0x00, 0xff, 0x01, 0xa5, 0x6a,
@@ -312,29 +289,21 @@ static int DecodeMPLSTestBadLabelReserved(void)
     };
 
     Packet *p = PacketGetFromAlloc();
-    if (unlikely(p == NULL)) {
-        return 0;
-    }
+    FAIL_IF_NULL(p);
     ThreadVars tv;
     DecodeThreadVars dtv;
-
     memset(&dtv, 0, sizeof(DecodeThreadVars));
     memset(&tv,  0, sizeof(ThreadVars));
 
     DecodeMPLS(&tv, &dtv, p, pkt, sizeof(pkt));
+    FAIL_IF(!ENGINE_ISSET_EVENT(p, MPLS_BAD_LABEL_RESERVED));
 
-    if (!ENGINE_ISSET_EVENT(p, MPLS_BAD_LABEL_RESERVED)) {
-        ret = 0;
-    }
-
-    SCFree(p);
-    return ret;
+    PacketFree(p);
+    PASS;
 }
 
 static int DecodeMPLSTestUnknownPayloadType(void)
 {
-    int ret = 1;
-
     /* Valid label: 21.
      * Unknown payload type: 1.
      */
@@ -355,23 +324,17 @@ static int DecodeMPLSTestUnknownPayloadType(void)
     };
 
     Packet *p = PacketGetFromAlloc();
-    if (unlikely(p == NULL)) {
-        return 0;
-    }
+    FAIL_IF_NULL(p);
     ThreadVars tv;
     DecodeThreadVars dtv;
-
     memset(&dtv, 0, sizeof(DecodeThreadVars));
     memset(&tv,  0, sizeof(ThreadVars));
 
     DecodeMPLS(&tv, &dtv, p, pkt, sizeof(pkt));
+    FAIL_IF(!ENGINE_ISSET_EVENT(p, MPLS_UNKNOWN_PAYLOAD_TYPE));
 
-    if (!ENGINE_ISSET_EVENT(p, MPLS_UNKNOWN_PAYLOAD_TYPE)) {
-        ret = 0;
-    }
-
-    SCFree(p);
-    return ret;
+    PacketFree(p);
+    PASS;
 }
 
 #endif /* UNITTESTS */