From 7f46a386cfc34d263665c002537b216fe6984d5f Mon Sep 17 00:00:00 2001 From: zhengchao Date: Fri, 3 Apr 2020 19:44:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug=EF=BC=9A=E5=91=BD?= =?UTF-8?q?=E4=B8=AD=E6=9C=AA=E8=A2=ABcompile=E6=88=96=E5=85=B6=E5=AE=83gr?= =?UTF-8?q?oup=E5=BC=95=E7=94=A8=E7=9A=84group=E6=97=B6=EF=BC=8C=E6=9C=AA?= =?UTF-8?q?=E5=B0=86=E5=85=B6=E5=8A=A0=E5=85=A5hit=20path=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/entry/Maat_api.cpp | 29 ++++++++++++++++++++++------- src/entry/Maat_rule.cpp | 2 +- test/test_maatframe.cpp | 12 ++++++++++++ 3 files changed, 35 insertions(+), 8 deletions(-) diff --git a/src/entry/Maat_api.cpp b/src/entry/Maat_api.cpp index b12234b..c04d262 100644 --- a/src/entry/Maat_api.cpp +++ b/src/entry/Maat_api.cpp @@ -267,7 +267,7 @@ void scan_hit_status_update_by_group(struct scan_hit_status* hit_status, struct int ret=0; struct Maat_hit_path_inner* hit_path=NULL; - for(i=0; itop_group_cnt; i++) + if(group_rule->top_group_cnt==0) { hit_path=ALLOC(struct Maat_hit_path_inner, 1); hit_path_init(&(hit_path->path)); @@ -275,15 +275,30 @@ void scan_hit_status_update_by_group(struct scan_hit_status* hit_status, struct hit_path->path.Nth_scan=Nth_scan; hit_path->path.region_id=region_id; hit_path->path.sub_group_id=group_rule->group_id; - hit_path->path.top_group_id=group_rule->top_groups[i]; hit_path->path.virtual_table_id=virtual_table_id; TAILQ_INSERT_TAIL(&hit_status->hit_path_qhead, hit_path, entries); hit_status->hit_path_cnt++; - ret=insert_set_id(&(hit_status->all_hit_group_array), - &(hit_status->all_hit_group_array_sz), - hit_status->all_hit_group_cnt, - TO_RELATION_ID(virtual_table_id, group_rule->top_groups[i])); - hit_status->all_hit_group_cnt+=ret; + } + else + { + for(i=0; itop_group_cnt; i++) + { + hit_path=ALLOC(struct Maat_hit_path_inner, 1); + hit_path_init(&(hit_path->path)); + hit_path->Nth_hit_region=Nth_region_result; + hit_path->path.Nth_scan=Nth_scan; + hit_path->path.region_id=region_id; + hit_path->path.sub_group_id=group_rule->group_id; + hit_path->path.top_group_id=group_rule->top_groups[i]; + hit_path->path.virtual_table_id=virtual_table_id; + TAILQ_INSERT_TAIL(&hit_status->hit_path_qhead, hit_path, entries); + hit_status->hit_path_cnt++; + ret=insert_set_id(&(hit_status->all_hit_group_array), + &(hit_status->all_hit_group_array_sz), + hit_status->all_hit_group_cnt, + TO_RELATION_ID(virtual_table_id, group_rule->top_groups[i])); + hit_status->all_hit_group_cnt+=ret; + } } return; } diff --git a/src/entry/Maat_rule.cpp b/src/entry/Maat_rule.cpp index 0097105..0adf775 100644 --- a/src/entry/Maat_rule.cpp +++ b/src/entry/Maat_rule.cpp @@ -33,7 +33,7 @@ #include "stream_fuzzy_hash.h" #include "gram_index_engine.h" -int MAAT_FRAME_VERSION_2_8_20200331=1; +int MAAT_FRAME_VERSION_2_8_20200403=1; int is_valid_table_name(const char* str) { diff --git a/test/test_maatframe.cpp b/test/test_maatframe.cpp index f58a74d..103f4fb 100644 --- a/test/test_maatframe.cpp +++ b/test/test_maatframe.cpp @@ -745,6 +745,18 @@ TEST(IPScan, IPv4_composition) EXPECT_EQ(result[0].config_id, 177); EXPECT_EQ(result[1].config_id, 175); + + struct Maat_hit_path_t hit_path[128]; + int n_read=0; + n_read=Maat_get_scan_status(g_feather, &mid, MAAT_GET_SCAN_HIT_PATH, hit_path, sizeof(hit_path)); + int i=0, c175=0, c177=0; + for(i=0; i