mirror of
https://git.yoctoproject.org/meta-security
synced 2026-01-11 15:00:34 +00:00
Backport fixes for: * CVE-2024-32663 - Upstream-Status: Backport frome68ec4b227&&c0af92295e* CVE-2024-32664 - Upstream-Status: Backport fromd5ffecf11a* CVE-2024-32867 - Upstream-Status: Backport from2f39ba75f1&&7137d5e7ab&&1e110d0a71&&e6267758edSigned-off-by: Hitendra Prajapati <hprajapati@mvista.com> Signed-off-by: Scott Murray <scott.murray@konsulko.com>
592 lines
23 KiB
Diff
592 lines
23 KiB
Diff
From 7137d5e7ab5500f1b7f3391f8ab55a59f1e4cbd7 Mon Sep 17 00:00:00 2001
|
|
From: Jason Ish <jason.ish@oisf.net>
|
|
Date: Mon, 27 Nov 2023 16:27:27 -0600
|
|
Subject: [PATCH] defrag: consistent unit test naming
|
|
|
|
Use a more consistent naming scheme between ipv4 and ipv6.
|
|
|
|
(cherry picked from commit 2f00b5870abc6053fca8271a0a827babc03d56f0)
|
|
|
|
CVE: CVE-2024-32867
|
|
Upstream-Status: Backport [https://github.com/OISF/suricata/commit/7137d5e7ab5500f1b7f3391f8ab55a59f1e4cbd7]
|
|
Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
|
|
---
|
|
src/defrag.c | 217 ++++++++++++++++++++++++---------------------------
|
|
1 file changed, 102 insertions(+), 115 deletions(-)
|
|
|
|
diff --git a/src/defrag.c b/src/defrag.c
|
|
index e154899..99fbab3 100644
|
|
--- a/src/defrag.c
|
|
+++ b/src/defrag.c
|
|
@@ -1125,8 +1125,8 @@ void DefragDestroy(void)
|
|
* Allocate a test packet. Nothing to fancy, just a simple IP packet
|
|
* with some payload of no particular protocol.
|
|
*/
|
|
-static Packet *BuildTestPacket(uint8_t proto, uint16_t id, uint16_t off, int mf,
|
|
- const char content, int content_len)
|
|
+static Packet *BuildIpv4TestPacket(
|
|
+ uint8_t proto, uint16_t id, uint16_t off, int mf, const char content, int content_len)
|
|
{
|
|
Packet *p = NULL;
|
|
int hlen = 20;
|
|
@@ -1199,8 +1199,8 @@ error:
|
|
return NULL;
|
|
}
|
|
|
|
-static Packet *IPV6BuildTestPacket(uint8_t proto, uint32_t id, uint16_t off,
|
|
- int mf, const char content, int content_len)
|
|
+static Packet *BuildIpv6TestPacket(
|
|
+ uint8_t proto, uint32_t id, uint16_t off, int mf, const char content, int content_len)
|
|
{
|
|
Packet *p = NULL;
|
|
uint8_t *pcontent;
|
|
@@ -1283,11 +1283,11 @@ static int DefragInOrderSimpleTest(void)
|
|
|
|
DefragInit();
|
|
|
|
- p1 = BuildTestPacket(IPPROTO_ICMP, id, 0, 1, 'A', 8);
|
|
+ p1 = BuildIpv4TestPacket(IPPROTO_ICMP, id, 0, 1, 'A', 8);
|
|
FAIL_IF_NULL(p1);
|
|
- p2 = BuildTestPacket(IPPROTO_ICMP, id, 1, 1, 'B', 8);
|
|
+ p2 = BuildIpv4TestPacket(IPPROTO_ICMP, id, 1, 1, 'B', 8);
|
|
FAIL_IF_NULL(p2);
|
|
- p3 = BuildTestPacket(IPPROTO_ICMP, id, 2, 0, 'C', 3);
|
|
+ p3 = BuildIpv4TestPacket(IPPROTO_ICMP, id, 2, 0, 'C', 3);
|
|
FAIL_IF_NULL(p3);
|
|
|
|
FAIL_IF(Defrag(NULL, NULL, p1) != NULL);
|
|
@@ -1335,11 +1335,11 @@ static int DefragReverseSimpleTest(void)
|
|
|
|
DefragInit();
|
|
|
|
- p1 = BuildTestPacket(IPPROTO_ICMP, id, 0, 1, 'A', 8);
|
|
+ p1 = BuildIpv4TestPacket(IPPROTO_ICMP, id, 0, 1, 'A', 8);
|
|
FAIL_IF_NULL(p1);
|
|
- p2 = BuildTestPacket(IPPROTO_ICMP, id, 1, 1, 'B', 8);
|
|
+ p2 = BuildIpv4TestPacket(IPPROTO_ICMP, id, 1, 1, 'B', 8);
|
|
FAIL_IF_NULL(p2);
|
|
- p3 = BuildTestPacket(IPPROTO_ICMP, id, 2, 0, 'C', 3);
|
|
+ p3 = BuildIpv4TestPacket(IPPROTO_ICMP, id, 2, 0, 'C', 3);
|
|
FAIL_IF_NULL(p3);
|
|
|
|
FAIL_IF(Defrag(NULL, NULL, p3) != NULL);
|
|
@@ -1379,7 +1379,7 @@ static int DefragReverseSimpleTest(void)
|
|
* Test the simplest possible re-assembly scenario. All packet in
|
|
* order and no overlaps.
|
|
*/
|
|
-static int IPV6DefragInOrderSimpleTest(void)
|
|
+static int DefragInOrderSimpleIpv6Test(void)
|
|
{
|
|
Packet *p1 = NULL, *p2 = NULL, *p3 = NULL;
|
|
Packet *reassembled = NULL;
|
|
@@ -1388,11 +1388,11 @@ static int IPV6DefragInOrderSimpleTest(void)
|
|
|
|
DefragInit();
|
|
|
|
- p1 = IPV6BuildTestPacket(IPPROTO_ICMPV6, id, 0, 1, 'A', 8);
|
|
+ p1 = BuildIpv6TestPacket(IPPROTO_ICMPV6, id, 0, 1, 'A', 8);
|
|
FAIL_IF_NULL(p1);
|
|
- p2 = IPV6BuildTestPacket(IPPROTO_ICMPV6, id, 1, 1, 'B', 8);
|
|
+ p2 = BuildIpv6TestPacket(IPPROTO_ICMPV6, id, 1, 1, 'B', 8);
|
|
FAIL_IF_NULL(p2);
|
|
- p3 = IPV6BuildTestPacket(IPPROTO_ICMPV6, id, 2, 0, 'C', 3);
|
|
+ p3 = BuildIpv6TestPacket(IPPROTO_ICMPV6, id, 2, 0, 'C', 3);
|
|
FAIL_IF_NULL(p3);
|
|
|
|
FAIL_IF(Defrag(NULL, NULL, p1) != NULL);
|
|
@@ -1426,7 +1426,7 @@ static int IPV6DefragInOrderSimpleTest(void)
|
|
PASS;
|
|
}
|
|
|
|
-static int IPV6DefragReverseSimpleTest(void)
|
|
+static int DefragReverseSimpleIpv6Test(void)
|
|
{
|
|
DefragContext *dc = NULL;
|
|
Packet *p1 = NULL, *p2 = NULL, *p3 = NULL;
|
|
@@ -1439,11 +1439,11 @@ static int IPV6DefragReverseSimpleTest(void)
|
|
dc = DefragContextNew();
|
|
FAIL_IF_NULL(dc);
|
|
|
|
- p1 = IPV6BuildTestPacket(IPPROTO_ICMPV6, id, 0, 1, 'A', 8);
|
|
+ p1 = BuildIpv6TestPacket(IPPROTO_ICMPV6, id, 0, 1, 'A', 8);
|
|
FAIL_IF_NULL(p1);
|
|
- p2 = IPV6BuildTestPacket(IPPROTO_ICMPV6, id, 1, 1, 'B', 8);
|
|
+ p2 = BuildIpv6TestPacket(IPPROTO_ICMPV6, id, 1, 1, 'B', 8);
|
|
FAIL_IF_NULL(p2);
|
|
- p3 = IPV6BuildTestPacket(IPPROTO_ICMPV6, id, 2, 0, 'C', 3);
|
|
+ p3 = BuildIpv6TestPacket(IPPROTO_ICMPV6, id, 2, 0, 'C', 3);
|
|
FAIL_IF_NULL(p3);
|
|
|
|
FAIL_IF(Defrag(NULL, NULL, p3) != NULL);
|
|
@@ -1496,59 +1496,59 @@ static int DefragDoSturgesNovakTest(int policy, u_char *expected,
|
|
*/
|
|
|
|
/* A*24 at 0. */
|
|
- packets[0] = BuildTestPacket(IPPROTO_ICMP, id, 0, 1, 'A', 24);
|
|
+ packets[0] = BuildIpv4TestPacket(IPPROTO_ICMP, id, 0, 1, 'A', 24);
|
|
|
|
/* B*15 at 32. */
|
|
- packets[1] = BuildTestPacket(IPPROTO_ICMP, id, 32 >> 3, 1, 'B', 16);
|
|
+ packets[1] = BuildIpv4TestPacket(IPPROTO_ICMP, id, 32 >> 3, 1, 'B', 16);
|
|
|
|
/* C*24 at 48. */
|
|
- packets[2] = BuildTestPacket(IPPROTO_ICMP, id, 48 >> 3, 1, 'C', 24);
|
|
+ packets[2] = BuildIpv4TestPacket(IPPROTO_ICMP, id, 48 >> 3, 1, 'C', 24);
|
|
|
|
/* D*8 at 80. */
|
|
- packets[3] = BuildTestPacket(IPPROTO_ICMP, id, 80 >> 3, 1, 'D', 8);
|
|
+ packets[3] = BuildIpv4TestPacket(IPPROTO_ICMP, id, 80 >> 3, 1, 'D', 8);
|
|
|
|
/* E*16 at 104. */
|
|
- packets[4] = BuildTestPacket(IPPROTO_ICMP, id, 104 >> 3, 1, 'E', 16);
|
|
+ packets[4] = BuildIpv4TestPacket(IPPROTO_ICMP, id, 104 >> 3, 1, 'E', 16);
|
|
|
|
/* F*24 at 120. */
|
|
- packets[5] = BuildTestPacket(IPPROTO_ICMP, id, 120 >> 3, 1, 'F', 24);
|
|
+ packets[5] = BuildIpv4TestPacket(IPPROTO_ICMP, id, 120 >> 3, 1, 'F', 24);
|
|
|
|
/* G*16 at 144. */
|
|
- packets[6] = BuildTestPacket(IPPROTO_ICMP, id, 144 >> 3, 1, 'G', 16);
|
|
+ packets[6] = BuildIpv4TestPacket(IPPROTO_ICMP, id, 144 >> 3, 1, 'G', 16);
|
|
|
|
/* H*16 at 160. */
|
|
- packets[7] = BuildTestPacket(IPPROTO_ICMP, id, 160 >> 3, 1, 'H', 16);
|
|
+ packets[7] = BuildIpv4TestPacket(IPPROTO_ICMP, id, 160 >> 3, 1, 'H', 16);
|
|
|
|
/* I*8 at 176. */
|
|
- packets[8] = BuildTestPacket(IPPROTO_ICMP, id, 176 >> 3, 1, 'I', 8);
|
|
+ packets[8] = BuildIpv4TestPacket(IPPROTO_ICMP, id, 176 >> 3, 1, 'I', 8);
|
|
|
|
/*
|
|
* Overlapping subsequent fragments.
|
|
*/
|
|
|
|
/* J*32 at 8. */
|
|
- packets[9] = BuildTestPacket(IPPROTO_ICMP, id, 8 >> 3, 1, 'J', 32);
|
|
+ packets[9] = BuildIpv4TestPacket(IPPROTO_ICMP, id, 8 >> 3, 1, 'J', 32);
|
|
|
|
/* K*24 at 48. */
|
|
- packets[10] = BuildTestPacket(IPPROTO_ICMP, id, 48 >> 3, 1, 'K', 24);
|
|
+ packets[10] = BuildIpv4TestPacket(IPPROTO_ICMP, id, 48 >> 3, 1, 'K', 24);
|
|
|
|
/* L*24 at 72. */
|
|
- packets[11] = BuildTestPacket(IPPROTO_ICMP, id, 72 >> 3, 1, 'L', 24);
|
|
+ packets[11] = BuildIpv4TestPacket(IPPROTO_ICMP, id, 72 >> 3, 1, 'L', 24);
|
|
|
|
/* M*24 at 96. */
|
|
- packets[12] = BuildTestPacket(IPPROTO_ICMP, id, 96 >> 3, 1, 'M', 24);
|
|
+ packets[12] = BuildIpv4TestPacket(IPPROTO_ICMP, id, 96 >> 3, 1, 'M', 24);
|
|
|
|
/* N*8 at 128. */
|
|
- packets[13] = BuildTestPacket(IPPROTO_ICMP, id, 128 >> 3, 1, 'N', 8);
|
|
+ packets[13] = BuildIpv4TestPacket(IPPROTO_ICMP, id, 128 >> 3, 1, 'N', 8);
|
|
|
|
/* O*8 at 152. */
|
|
- packets[14] = BuildTestPacket(IPPROTO_ICMP, id, 152 >> 3, 1, 'O', 8);
|
|
+ packets[14] = BuildIpv4TestPacket(IPPROTO_ICMP, id, 152 >> 3, 1, 'O', 8);
|
|
|
|
/* P*8 at 160. */
|
|
- packets[15] = BuildTestPacket(IPPROTO_ICMP, id, 160 >> 3, 1, 'P', 8);
|
|
+ packets[15] = BuildIpv4TestPacket(IPPROTO_ICMP, id, 160 >> 3, 1, 'P', 8);
|
|
|
|
/* Q*16 at 176. */
|
|
- packets[16] = BuildTestPacket(IPPROTO_ICMP, id, 176 >> 3, 0, 'Q', 16);
|
|
+ packets[16] = BuildIpv4TestPacket(IPPROTO_ICMP, id, 176 >> 3, 0, 'Q', 16);
|
|
|
|
default_policy = policy;
|
|
|
|
@@ -1588,8 +1588,7 @@ static int DefragDoSturgesNovakTest(int policy, u_char *expected,
|
|
PASS;
|
|
}
|
|
|
|
-static int IPV6DefragDoSturgesNovakTest(int policy, u_char *expected,
|
|
- size_t expected_len)
|
|
+static int DefragDoSturgesNovakIpv6Test(int policy, u_char *expected, size_t expected_len)
|
|
{
|
|
int i;
|
|
|
|
@@ -1608,59 +1607,59 @@ static int IPV6DefragDoSturgesNovakTest(int policy, u_char *expected,
|
|
*/
|
|
|
|
/* A*24 at 0. */
|
|
- packets[0] = IPV6BuildTestPacket(IPPROTO_ICMPV6, id, 0, 1, 'A', 24);
|
|
+ packets[0] = BuildIpv6TestPacket(IPPROTO_ICMPV6, id, 0, 1, 'A', 24);
|
|
|
|
/* B*15 at 32. */
|
|
- packets[1] = IPV6BuildTestPacket(IPPROTO_ICMPV6, id, 32 >> 3, 1, 'B', 16);
|
|
+ packets[1] = BuildIpv6TestPacket(IPPROTO_ICMPV6, id, 32 >> 3, 1, 'B', 16);
|
|
|
|
/* C*24 at 48. */
|
|
- packets[2] = IPV6BuildTestPacket(IPPROTO_ICMPV6, id, 48 >> 3, 1, 'C', 24);
|
|
+ packets[2] = BuildIpv6TestPacket(IPPROTO_ICMPV6, id, 48 >> 3, 1, 'C', 24);
|
|
|
|
/* D*8 at 80. */
|
|
- packets[3] = IPV6BuildTestPacket(IPPROTO_ICMPV6, id, 80 >> 3, 1, 'D', 8);
|
|
+ packets[3] = BuildIpv6TestPacket(IPPROTO_ICMPV6, id, 80 >> 3, 1, 'D', 8);
|
|
|
|
/* E*16 at 104. */
|
|
- packets[4] = IPV6BuildTestPacket(IPPROTO_ICMPV6, id, 104 >> 3, 1, 'E', 16);
|
|
+ packets[4] = BuildIpv6TestPacket(IPPROTO_ICMPV6, id, 104 >> 3, 1, 'E', 16);
|
|
|
|
/* F*24 at 120. */
|
|
- packets[5] = IPV6BuildTestPacket(IPPROTO_ICMPV6, id, 120 >> 3, 1, 'F', 24);
|
|
+ packets[5] = BuildIpv6TestPacket(IPPROTO_ICMPV6, id, 120 >> 3, 1, 'F', 24);
|
|
|
|
/* G*16 at 144. */
|
|
- packets[6] = IPV6BuildTestPacket(IPPROTO_ICMPV6, id, 144 >> 3, 1, 'G', 16);
|
|
+ packets[6] = BuildIpv6TestPacket(IPPROTO_ICMPV6, id, 144 >> 3, 1, 'G', 16);
|
|
|
|
/* H*16 at 160. */
|
|
- packets[7] = IPV6BuildTestPacket(IPPROTO_ICMPV6, id, 160 >> 3, 1, 'H', 16);
|
|
+ packets[7] = BuildIpv6TestPacket(IPPROTO_ICMPV6, id, 160 >> 3, 1, 'H', 16);
|
|
|
|
/* I*8 at 176. */
|
|
- packets[8] = IPV6BuildTestPacket(IPPROTO_ICMPV6, id, 176 >> 3, 1, 'I', 8);
|
|
+ packets[8] = BuildIpv6TestPacket(IPPROTO_ICMPV6, id, 176 >> 3, 1, 'I', 8);
|
|
|
|
/*
|
|
* Overlapping subsequent fragments.
|
|
*/
|
|
|
|
/* J*32 at 8. */
|
|
- packets[9] = IPV6BuildTestPacket(IPPROTO_ICMPV6, id, 8 >> 3, 1, 'J', 32);
|
|
+ packets[9] = BuildIpv6TestPacket(IPPROTO_ICMPV6, id, 8 >> 3, 1, 'J', 32);
|
|
|
|
/* K*24 at 48. */
|
|
- packets[10] = IPV6BuildTestPacket(IPPROTO_ICMPV6, id, 48 >> 3, 1, 'K', 24);
|
|
+ packets[10] = BuildIpv6TestPacket(IPPROTO_ICMPV6, id, 48 >> 3, 1, 'K', 24);
|
|
|
|
/* L*24 at 72. */
|
|
- packets[11] = IPV6BuildTestPacket(IPPROTO_ICMPV6, id, 72 >> 3, 1, 'L', 24);
|
|
+ packets[11] = BuildIpv6TestPacket(IPPROTO_ICMPV6, id, 72 >> 3, 1, 'L', 24);
|
|
|
|
/* M*24 at 96. */
|
|
- packets[12] = IPV6BuildTestPacket(IPPROTO_ICMPV6, id, 96 >> 3, 1, 'M', 24);
|
|
+ packets[12] = BuildIpv6TestPacket(IPPROTO_ICMPV6, id, 96 >> 3, 1, 'M', 24);
|
|
|
|
/* N*8 at 128. */
|
|
- packets[13] = IPV6BuildTestPacket(IPPROTO_ICMPV6, id, 128 >> 3, 1, 'N', 8);
|
|
+ packets[13] = BuildIpv6TestPacket(IPPROTO_ICMPV6, id, 128 >> 3, 1, 'N', 8);
|
|
|
|
/* O*8 at 152. */
|
|
- packets[14] = IPV6BuildTestPacket(IPPROTO_ICMPV6, id, 152 >> 3, 1, 'O', 8);
|
|
+ packets[14] = BuildIpv6TestPacket(IPPROTO_ICMPV6, id, 152 >> 3, 1, 'O', 8);
|
|
|
|
/* P*8 at 160. */
|
|
- packets[15] = IPV6BuildTestPacket(IPPROTO_ICMPV6, id, 160 >> 3, 1, 'P', 8);
|
|
+ packets[15] = BuildIpv6TestPacket(IPPROTO_ICMPV6, id, 160 >> 3, 1, 'P', 8);
|
|
|
|
/* Q*16 at 176. */
|
|
- packets[16] = IPV6BuildTestPacket(IPPROTO_ICMPV6, id, 176 >> 3, 0, 'Q', 16);
|
|
+ packets[16] = BuildIpv6TestPacket(IPPROTO_ICMPV6, id, 176 >> 3, 0, 'Q', 16);
|
|
|
|
default_policy = policy;
|
|
|
|
@@ -1735,7 +1734,7 @@ DefragSturgesNovakBsdTest(void)
|
|
PASS;
|
|
}
|
|
|
|
-static int IPV6DefragSturgesNovakBsdTest(void)
|
|
+static int DefragSturgesNovakBsdIpv6Test(void)
|
|
{
|
|
/* Expected data. */
|
|
u_char expected[] = {
|
|
@@ -1765,8 +1764,7 @@ static int IPV6DefragSturgesNovakBsdTest(void)
|
|
"QQQQQQQQ"
|
|
};
|
|
|
|
- FAIL_IF_NOT(IPV6DefragDoSturgesNovakTest(DEFRAG_POLICY_BSD, expected,
|
|
- sizeof(expected)));
|
|
+ FAIL_IF_NOT(DefragDoSturgesNovakIpv6Test(DEFRAG_POLICY_BSD, expected, sizeof(expected)));
|
|
PASS;
|
|
}
|
|
|
|
@@ -1805,7 +1803,7 @@ static int DefragSturgesNovakLinuxIpv4Test(void)
|
|
PASS;
|
|
}
|
|
|
|
-static int IPV6DefragSturgesNovakLinuxTest(void)
|
|
+static int DefragSturgesNovakLinuxIpv6Test(void)
|
|
{
|
|
/* Expected data. */
|
|
u_char expected[] = {
|
|
@@ -1835,8 +1833,7 @@ static int IPV6DefragSturgesNovakLinuxTest(void)
|
|
"QQQQQQQQ"
|
|
};
|
|
|
|
- FAIL_IF_NOT(IPV6DefragDoSturgesNovakTest(DEFRAG_POLICY_LINUX, expected,
|
|
- sizeof(expected)));
|
|
+ FAIL_IF_NOT(DefragDoSturgesNovakIpv6Test(DEFRAG_POLICY_LINUX, expected, sizeof(expected)));
|
|
PASS;
|
|
}
|
|
|
|
@@ -1875,7 +1872,7 @@ static int DefragSturgesNovakWindowsIpv4Test(void)
|
|
PASS;
|
|
}
|
|
|
|
-static int IPV6DefragSturgesNovakWindowsTest(void)
|
|
+static int DefragSturgesNovakWindowsIpv6Test(void)
|
|
{
|
|
/* Expected data. */
|
|
u_char expected[] = {
|
|
@@ -1905,8 +1902,7 @@ static int IPV6DefragSturgesNovakWindowsTest(void)
|
|
"QQQQQQQQ"
|
|
};
|
|
|
|
- FAIL_IF_NOT(IPV6DefragDoSturgesNovakTest(DEFRAG_POLICY_WINDOWS, expected,
|
|
- sizeof(expected)));
|
|
+ FAIL_IF_NOT(DefragDoSturgesNovakIpv6Test(DEFRAG_POLICY_WINDOWS, expected, sizeof(expected)));
|
|
PASS;
|
|
}
|
|
|
|
@@ -1945,7 +1941,7 @@ static int DefragSturgesNovakSolarisTest(void)
|
|
PASS;
|
|
}
|
|
|
|
-static int IPV6DefragSturgesNovakSolarisTest(void)
|
|
+static int DefragSturgesNovakSolarisIpv6Test(void)
|
|
{
|
|
/* Expected data. */
|
|
u_char expected[] = {
|
|
@@ -1975,8 +1971,7 @@ static int IPV6DefragSturgesNovakSolarisTest(void)
|
|
"QQQQQQQQ"
|
|
};
|
|
|
|
- FAIL_IF_NOT(IPV6DefragDoSturgesNovakTest(DEFRAG_POLICY_SOLARIS, expected,
|
|
- sizeof(expected)));
|
|
+ FAIL_IF_NOT(DefragDoSturgesNovakIpv6Test(DEFRAG_POLICY_SOLARIS, expected, sizeof(expected)));
|
|
PASS;
|
|
}
|
|
|
|
@@ -2015,7 +2010,7 @@ static int DefragSturgesNovakFirstTest(void)
|
|
PASS;
|
|
}
|
|
|
|
-static int IPV6DefragSturgesNovakFirstTest(void)
|
|
+static int DefragSturgesNovakFirstIpv6Test(void)
|
|
{
|
|
/* Expected data. */
|
|
u_char expected[] = {
|
|
@@ -2045,8 +2040,7 @@ static int IPV6DefragSturgesNovakFirstTest(void)
|
|
"QQQQQQQQ"
|
|
};
|
|
|
|
- return IPV6DefragDoSturgesNovakTest(DEFRAG_POLICY_FIRST, expected,
|
|
- sizeof(expected));
|
|
+ return DefragDoSturgesNovakIpv6Test(DEFRAG_POLICY_FIRST, expected, sizeof(expected));
|
|
}
|
|
|
|
static int
|
|
@@ -2085,7 +2079,7 @@ DefragSturgesNovakLastTest(void)
|
|
PASS;
|
|
}
|
|
|
|
-static int IPV6DefragSturgesNovakLastTest(void)
|
|
+static int DefragSturgesNovakLastIpv6Test(void)
|
|
{
|
|
/* Expected data. */
|
|
u_char expected[] = {
|
|
@@ -2115,8 +2109,7 @@ static int IPV6DefragSturgesNovakLastTest(void)
|
|
"QQQQQQQQ"
|
|
};
|
|
|
|
- FAIL_IF_NOT(IPV6DefragDoSturgesNovakTest(DEFRAG_POLICY_LAST, expected,
|
|
- sizeof(expected)));
|
|
+ FAIL_IF_NOT(DefragDoSturgesNovakIpv6Test(DEFRAG_POLICY_LAST, expected, sizeof(expected)));
|
|
PASS;
|
|
}
|
|
|
|
@@ -2131,7 +2124,7 @@ static int DefragTimeoutTest(void)
|
|
|
|
/* Load in 16 packets. */
|
|
for (i = 0; i < 16; i++) {
|
|
- Packet *p = BuildTestPacket(IPPROTO_ICMP,i, 0, 1, 'A' + i, 16);
|
|
+ Packet *p = BuildIpv4TestPacket(IPPROTO_ICMP, i, 0, 1, 'A' + i, 16);
|
|
FAIL_IF_NULL(p);
|
|
|
|
Packet *tp = Defrag(NULL, NULL, p);
|
|
@@ -2141,7 +2134,7 @@ static int DefragTimeoutTest(void)
|
|
|
|
/* Build a new packet but push the timestamp out by our timeout.
|
|
* This should force our previous fragments to be timed out. */
|
|
- Packet *p = BuildTestPacket(IPPROTO_ICMP, 99, 0, 1, 'A' + i, 16);
|
|
+ Packet *p = BuildIpv4TestPacket(IPPROTO_ICMP, 99, 0, 1, 'A' + i, 16);
|
|
FAIL_IF_NULL(p);
|
|
|
|
p->ts = SCTIME_ADD_SECS(p->ts, defrag_context->timeout + 1);
|
|
@@ -2166,7 +2159,7 @@ static int DefragTimeoutTest(void)
|
|
* fail. The fix was simple, but this unit test is just to make sure
|
|
* its not introduced.
|
|
*/
|
|
-static int DefragIPv4NoDataTest(void)
|
|
+static int DefragNoDataIpv4Test(void)
|
|
{
|
|
DefragContext *dc = NULL;
|
|
Packet *p = NULL;
|
|
@@ -2178,7 +2171,7 @@ static int DefragIPv4NoDataTest(void)
|
|
FAIL_IF_NULL(dc);
|
|
|
|
/* This packet has an offset > 0, more frags set to 0 and no data. */
|
|
- p = BuildTestPacket(IPPROTO_ICMP, id, 1, 0, 'A', 0);
|
|
+ p = BuildIpv4TestPacket(IPPROTO_ICMP, id, 1, 0, 'A', 0);
|
|
FAIL_IF_NULL(p);
|
|
|
|
/* We do not expect a packet returned. */
|
|
@@ -2195,7 +2188,7 @@ static int DefragIPv4NoDataTest(void)
|
|
PASS;
|
|
}
|
|
|
|
-static int DefragIPv4TooLargeTest(void)
|
|
+static int DefragTooLargeIpv4Test(void)
|
|
{
|
|
DefragContext *dc = NULL;
|
|
Packet *p = NULL;
|
|
@@ -2207,7 +2200,7 @@ static int DefragIPv4TooLargeTest(void)
|
|
|
|
/* Create a fragment that would extend past the max allowable size
|
|
* for an IPv4 packet. */
|
|
- p = BuildTestPacket(IPPROTO_ICMP, 1, 8183, 0, 'A', 71);
|
|
+ p = BuildIpv4TestPacket(IPPROTO_ICMP, 1, 8183, 0, 'A', 71);
|
|
FAIL_IF_NULL(p);
|
|
|
|
/* We do not expect a packet returned. */
|
|
@@ -2238,9 +2231,9 @@ static int DefragVlanTest(void)
|
|
|
|
DefragInit();
|
|
|
|
- p1 = BuildTestPacket(IPPROTO_ICMP, 1, 0, 1, 'A', 8);
|
|
+ p1 = BuildIpv4TestPacket(IPPROTO_ICMP, 1, 0, 1, 'A', 8);
|
|
FAIL_IF_NULL(p1);
|
|
- p2 = BuildTestPacket(IPPROTO_ICMP, 1, 1, 0, 'B', 8);
|
|
+ p2 = BuildIpv4TestPacket(IPPROTO_ICMP, 1, 1, 0, 'B', 8);
|
|
FAIL_IF_NULL(p2);
|
|
|
|
/* With no VLAN IDs set, packets should re-assemble. */
|
|
@@ -2270,9 +2263,9 @@ static int DefragVlanQinQTest(void)
|
|
|
|
DefragInit();
|
|
|
|
- p1 = BuildTestPacket(IPPROTO_ICMP, 1, 0, 1, 'A', 8);
|
|
+ p1 = BuildIpv4TestPacket(IPPROTO_ICMP, 1, 0, 1, 'A', 8);
|
|
FAIL_IF_NULL(p1);
|
|
- p2 = BuildTestPacket(IPPROTO_ICMP, 1, 1, 0, 'B', 8);
|
|
+ p2 = BuildIpv4TestPacket(IPPROTO_ICMP, 1, 1, 0, 'B', 8);
|
|
FAIL_IF_NULL(p2);
|
|
|
|
/* With no VLAN IDs set, packets should re-assemble. */
|
|
@@ -2304,9 +2297,9 @@ static int DefragVlanQinQinQTest(void)
|
|
|
|
DefragInit();
|
|
|
|
- Packet *p1 = BuildTestPacket(IPPROTO_ICMP, 1, 0, 1, 'A', 8);
|
|
+ Packet *p1 = BuildIpv4TestPacket(IPPROTO_ICMP, 1, 0, 1, 'A', 8);
|
|
FAIL_IF_NULL(p1);
|
|
- Packet *p2 = BuildTestPacket(IPPROTO_ICMP, 1, 1, 0, 'B', 8);
|
|
+ Packet *p2 = BuildIpv4TestPacket(IPPROTO_ICMP, 1, 1, 0, 'B', 8);
|
|
FAIL_IF_NULL(p2);
|
|
|
|
/* With no VLAN IDs set, packets should re-assemble. */
|
|
@@ -2340,7 +2333,7 @@ static int DefragTrackerReuseTest(void)
|
|
|
|
/* Build a packet, its not a fragment but shouldn't matter for
|
|
* this test. */
|
|
- p1 = BuildTestPacket(IPPROTO_ICMP, id, 0, 0, 'A', 8);
|
|
+ p1 = BuildIpv4TestPacket(IPPROTO_ICMP, id, 0, 0, 'A', 8);
|
|
FAIL_IF_NULL(p1);
|
|
|
|
/* Get a tracker. It shouldn't look like its already in use. */
|
|
@@ -2387,9 +2380,9 @@ static int DefragMfIpv4Test(void)
|
|
|
|
DefragInit();
|
|
|
|
- Packet *p1 = BuildTestPacket(IPPROTO_ICMP, ip_id, 2, 1, 'C', 8);
|
|
- Packet *p2 = BuildTestPacket(IPPROTO_ICMP, ip_id, 0, 1, 'A', 8);
|
|
- Packet *p3 = BuildTestPacket(IPPROTO_ICMP, ip_id, 1, 0, 'B', 8);
|
|
+ Packet *p1 = BuildIpv4TestPacket(IPPROTO_ICMP, ip_id, 2, 1, 'C', 8);
|
|
+ Packet *p2 = BuildIpv4TestPacket(IPPROTO_ICMP, ip_id, 0, 1, 'A', 8);
|
|
+ Packet *p3 = BuildIpv4TestPacket(IPPROTO_ICMP, ip_id, 1, 0, 'B', 8);
|
|
FAIL_IF(p1 == NULL || p2 == NULL || p3 == NULL);
|
|
|
|
p = Defrag(NULL, NULL, p1);
|
|
@@ -2434,9 +2427,9 @@ static int DefragMfIpv6Test(void)
|
|
|
|
DefragInit();
|
|
|
|
- Packet *p1 = IPV6BuildTestPacket(IPPROTO_ICMPV6, ip_id, 2, 1, 'C', 8);
|
|
- Packet *p2 = IPV6BuildTestPacket(IPPROTO_ICMPV6, ip_id, 0, 1, 'A', 8);
|
|
- Packet *p3 = IPV6BuildTestPacket(IPPROTO_ICMPV6, ip_id, 1, 0, 'B', 8);
|
|
+ Packet *p1 = BuildIpv6TestPacket(IPPROTO_ICMPV6, ip_id, 2, 1, 'C', 8);
|
|
+ Packet *p2 = BuildIpv6TestPacket(IPPROTO_ICMPV6, ip_id, 0, 1, 'A', 8);
|
|
+ Packet *p3 = BuildIpv6TestPacket(IPPROTO_ICMPV6, ip_id, 1, 0, 'B', 8);
|
|
FAIL_IF(p1 == NULL || p2 == NULL || p3 == NULL);
|
|
|
|
p = Defrag(NULL, NULL, p1);
|
|
@@ -2476,11 +2469,11 @@ static int DefragTestBadProto(void)
|
|
|
|
DefragInit();
|
|
|
|
- p1 = BuildTestPacket(IPPROTO_ICMP, id, 0, 1, 'A', 8);
|
|
+ p1 = BuildIpv4TestPacket(IPPROTO_ICMP, id, 0, 1, 'A', 8);
|
|
FAIL_IF_NULL(p1);
|
|
- p2 = BuildTestPacket(IPPROTO_UDP, id, 1, 1, 'B', 8);
|
|
+ p2 = BuildIpv4TestPacket(IPPROTO_UDP, id, 1, 1, 'B', 8);
|
|
FAIL_IF_NULL(p2);
|
|
- p3 = BuildTestPacket(IPPROTO_ICMP, id, 2, 0, 'C', 3);
|
|
+ p3 = BuildIpv4TestPacket(IPPROTO_ICMP, id, 2, 0, 'C', 3);
|
|
FAIL_IF_NULL(p3);
|
|
|
|
FAIL_IF_NOT_NULL(Defrag(NULL, NULL, p1));
|
|
@@ -2522,10 +2515,10 @@ static int DefragTestJeremyLinux(void)
|
|
Packet *packets[4];
|
|
int i = 0;
|
|
|
|
- packets[0] = BuildTestPacket(IPPROTO_ICMP, id, 0, 1, 'A', 24);
|
|
- packets[1] = BuildTestPacket(IPPROTO_ICMP, id, 40 >> 3, 1, 'B', 48);
|
|
- packets[2] = BuildTestPacket(IPPROTO_ICMP, id, 24 >> 3, 1, 'C', 48);
|
|
- packets[3] = BuildTestPacket(IPPROTO_ICMP, id, 88 >> 3, 0, 'D', 14);
|
|
+ packets[0] = BuildIpv4TestPacket(IPPROTO_ICMP, id, 0, 1, 'A', 24);
|
|
+ packets[1] = BuildIpv4TestPacket(IPPROTO_ICMP, id, 40 >> 3, 1, 'B', 48);
|
|
+ packets[2] = BuildIpv4TestPacket(IPPROTO_ICMP, id, 24 >> 3, 1, 'C', 48);
|
|
+ packets[3] = BuildIpv4TestPacket(IPPROTO_ICMP, id, 88 >> 3, 0, 'D', 14);
|
|
|
|
Packet *r = Defrag(NULL, NULL, packets[0]);
|
|
FAIL_IF_NOT_NULL(r);
|
|
@@ -2657,23 +2650,17 @@ void DefragRegisterTests(void)
|
|
UtRegisterTest("DefragSturgesNovakFirstTest", DefragSturgesNovakFirstTest);
|
|
UtRegisterTest("DefragSturgesNovakLastTest", DefragSturgesNovakLastTest);
|
|
|
|
- UtRegisterTest("DefragIPv4NoDataTest", DefragIPv4NoDataTest);
|
|
- UtRegisterTest("DefragIPv4TooLargeTest", DefragIPv4TooLargeTest);
|
|
-
|
|
- UtRegisterTest("IPV6DefragInOrderSimpleTest", IPV6DefragInOrderSimpleTest);
|
|
- UtRegisterTest("IPV6DefragReverseSimpleTest", IPV6DefragReverseSimpleTest);
|
|
- UtRegisterTest("IPV6DefragSturgesNovakBsdTest",
|
|
- IPV6DefragSturgesNovakBsdTest);
|
|
- UtRegisterTest("IPV6DefragSturgesNovakLinuxTest",
|
|
- IPV6DefragSturgesNovakLinuxTest);
|
|
- UtRegisterTest("IPV6DefragSturgesNovakWindowsTest",
|
|
- IPV6DefragSturgesNovakWindowsTest);
|
|
- UtRegisterTest("IPV6DefragSturgesNovakSolarisTest",
|
|
- IPV6DefragSturgesNovakSolarisTest);
|
|
- UtRegisterTest("IPV6DefragSturgesNovakFirstTest",
|
|
- IPV6DefragSturgesNovakFirstTest);
|
|
- UtRegisterTest("IPV6DefragSturgesNovakLastTest",
|
|
- IPV6DefragSturgesNovakLastTest);
|
|
+ UtRegisterTest("DefragNoDataIpv4Test", DefragNoDataIpv4Test);
|
|
+ UtRegisterTest("DefragTooLargeIpv4Test", DefragTooLargeIpv4Test);
|
|
+
|
|
+ UtRegisterTest("DefragInOrderSimpleIpv6Test", DefragInOrderSimpleIpv6Test);
|
|
+ UtRegisterTest("DefragReverseSimpleIpv6Test", DefragReverseSimpleIpv6Test);
|
|
+ UtRegisterTest("DefragSturgesNovakBsdIpv6Test", DefragSturgesNovakBsdIpv6Test);
|
|
+ UtRegisterTest("DefragSturgesNovakLinuxIpv6Test", DefragSturgesNovakLinuxIpv6Test);
|
|
+ UtRegisterTest("DefragSturgesNovakWindowsIpv6Test", DefragSturgesNovakWindowsIpv6Test);
|
|
+ UtRegisterTest("DefragSturgesNovakSolarisIpv6Test", DefragSturgesNovakSolarisIpv6Test);
|
|
+ UtRegisterTest("DefragSturgesNovakFirstIpv6Test", DefragSturgesNovakFirstIpv6Test);
|
|
+ UtRegisterTest("DefragSturgesNovakLastIpv6Test", DefragSturgesNovakLastIpv6Test);
|
|
|
|
UtRegisterTest("DefragVlanTest", DefragVlanTest);
|
|
UtRegisterTest("DefragVlanQinQTest", DefragVlanQinQTest);
|
|
--
|
|
2.50.1
|
|
|