From a6fb2b6fdd80b9120bf7af7422d2f8a975bd9520 Mon Sep 17 00:00:00 2001 From: liuwentan Date: Mon, 27 Feb 2023 15:55:26 +0800 Subject: [PATCH] allow compile table not exist --- src/maat_ex_data.c | 2 -- src/maat_table.c | 3 --- test/maat_framework_gtest.cpp | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/src/maat_ex_data.c b/src/maat_ex_data.c index dd28416..395cb5e 100644 --- a/src/maat_ex_data.c +++ b/src/maat_ex_data.c @@ -74,8 +74,6 @@ void ex_data_runtime_free(struct ex_data_runtime *ex_data_rt) void ex_data_runtime_commit(struct ex_data_runtime *ex_data_rt) { rcu_hash_commit(ex_data_rt->htable); - size_t count = rcu_hash_count(ex_data_rt->htable); - log_info(ex_data_rt->logger, MODULE_EX_DATA, "rcu_hash_count:%zu", count); } void ex_data_runtime_cache_row_put(struct ex_data_runtime *ex_data_rt, const char *row) diff --git a/src/maat_table.c b/src/maat_table.c index 37e2fc4..f5630d7 100644 --- a/src/maat_table.c +++ b/src/maat_table.c @@ -470,9 +470,6 @@ table_manager_create(const char *table_info_path, const char *accept_tags, tbl_mgr->n_table++; } } - - assert(default_compile_table_id != MAX_TABLE_NUM); - assert(g2g_table_id != MAX_TABLE_NUM); tbl_mgr->default_compile_table_id = default_compile_table_id; tbl_mgr->g2g_table_id = g2g_table_id; diff --git a/test/maat_framework_gtest.cpp b/test/maat_framework_gtest.cpp index 2adcbb5..56090af 100644 --- a/test/maat_framework_gtest.cpp +++ b/test/maat_framework_gtest.cpp @@ -1339,8 +1339,40 @@ TEST_F(Policy, CompileRuleTags) { maat_state_free(&state); } +#if 0 +TEST_F(Policy, CompileEXData) { + long long results[ARRAY_SIZE] = {0}; + size_t n_hit_result = 0; + struct maat_state *state = NULL; + const char *url = "i.ytimg.com/vi/OtCNcustg_I/hqdefault.jpg?sqp=-oaymwEZCNACELwBSFXyq4qpAwsIARUAAIhCGAFwAQ==&rs=AOn4CLDOp_5fHMaCA9XZuJdCRv4DNDorMg"; + const char *table_name = "HTTP_URL_LITERAL"; + const char *expect_name = "I have a name"; + int table_id = maat_table_get_id(g_maat_instance, table_name); + ASSERT_GT(table_id, 0); + + int ex_data_counter = 0; + int ret = maat_compile_table_ex_schema_register(g_maat_instance, "COMPILE", + compile_ex_param_new, + compile_ex_param_free, + compile_ex_param_dup, + 0, &ex_data_counter); + ASSERT_TRUE(ret >= 0); + EXPECT_EQ(ex_data_counter, 1); + + ret = maat_scan_string(g_maat_instance, table_id, 0, url, strlen(url), + results, ARRAY_SIZE, &n_hit_result, &state); + EXPECT_EQ(ret, MAAT_SCAN_HIT); + void *ex_data=Maat_rule_get_ex_data(g_feather, result, ex_param_idx); + ASSERT_TRUE(ex_data!=NULL); + struct rule_ex_param* param=(struct rule_ex_param*)ex_data; + EXPECT_EQ(param->id, 7799); + EXPECT_EQ(strcmp(param->name, expect_name),0); + compile_ex_param_free(0, NULL, NULL, &ex_data, 0, NULL); + Maat_clean_status(&mid); +} +#endif class MaatCmdTest : public testing::Test { protected: