summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Conole <aconole@redhat.com>2019-07-30 17:31:23 -0400
committerThomas Monjalon <thomas@monjalon.net>2019-07-31 00:22:33 +0200
commit0d36f32ed29be8ed6d517665cdc266335eb23541 (patch)
tree022bbb0d648edb744c063bccce023b892d44511c
parent4a4a20c4775b578379fc964952b0bbcff1ac88d6 (diff)
downloaddpdk-0d36f32ed29be8ed6d517665cdc266335eb23541.zip
dpdk-0d36f32ed29be8ed6d517665cdc266335eb23541.tar.gz
dpdk-0d36f32ed29be8ed6d517665cdc266335eb23541.tar.xz
test/flow_classify: fix undefined behavior
The unit test for the flow classify introduced undefined behavior by using a corrupted list. Remove these tests as the invalid data is impossible to detect with the current API. Fixes: 9c9befea4f57 ("test: add flow classify unit tests") Cc: stable@dpdk.org Signed-off-by: Aaron Conole <aconole@redhat.com>
-rw-r--r--app/test/test_flow_classify.c30
1 files changed, 1 insertions, 29 deletions
diff --git a/app/test/test_flow_classify.c b/app/test/test_flow_classify.c
index 6bbaad3..ff5265c 100644
--- a/app/test/test_flow_classify.c
+++ b/app/test/test_flow_classify.c
@@ -125,7 +125,6 @@ static struct rte_flow_item udp_item_bad = { RTE_FLOW_ITEM_TYPE_UDP,
static struct rte_flow_item end_item = { RTE_FLOW_ITEM_TYPE_END,
0, 0, 0 };
-static struct rte_flow_item end_item_bad = { -1, 0, 0, 0 };
/* test TCP pattern:
* "eth / ipv4 src spec 1.2.3.4 src mask 255.255.255.00 dst spec 5.6.7.8
@@ -181,7 +180,6 @@ static struct rte_flow_action count_action = { RTE_FLOW_ACTION_TYPE_COUNT,
static struct rte_flow_action count_action_bad = { -1, 0};
static struct rte_flow_action end_action = { RTE_FLOW_ACTION_TYPE_END, 0};
-static struct rte_flow_action end_action_bad = { -1, 0};
static struct rte_flow_action actions[2];
@@ -384,7 +382,7 @@ test_invalid_patterns(void)
pattern[1] = ipv4_udp_item_1;
pattern[2] = udp_item_bad;
- pattern[3] = end_item_bad;
+ pattern[3] = end_item;
ret = rte_flow_classify_validate(cls->cls, &attr, pattern,
actions, &error);
@@ -458,32 +456,6 @@ test_invalid_actions(void)
return -1;
}
- actions[0] = count_action;
- actions[1] = end_action_bad;
-
- ret = rte_flow_classify_validate(cls->cls, &attr, pattern,
- actions, &error);
- if (!ret) {
- printf("Line %i: rte_flow_classify_validate", __LINE__);
- printf(" should have failed!\n");
- return -1;
- }
-
- rule = rte_flow_classify_table_entry_add(cls->cls, &attr, pattern,
- actions, &key_found, &error);
- if (rule) {
- printf("Line %i: flow_classify_table_entry_add", __LINE__);
- printf(" should have failed!\n");
- return -1;
- }
-
- ret = rte_flow_classify_table_entry_delete(cls->cls, rule);
- if (!ret) {
- printf("Line %i: rte_flow_classify_table_entry_delete",
- __LINE__);
- printf("should have failed!\n");
- return -1;
- }
return 0;
}