From: Victor Julien Date: Tue, 25 Oct 2022 07:16:27 +0000 (+0200) Subject: decode/mpls/tests: improve pkt handling; cleanups X-Git-Tag: suricata-7.0.0-beta1~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=edf93ae5b6ab8e05acbaeb3d357b6f2d48a66258;p=thirdparty%2Fsuricata.git decode/mpls/tests: improve pkt handling; cleanups --- diff --git a/src/decode-mpls.c b/src/decode-mpls.c index dc724762b3..09b7c14b1d 100644 --- a/src/decode-mpls.c +++ b/src/decode-mpls.c @@ -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 */