region_rule_inner中增加magic_num,以诊断region配置删除时可能发生的野指针访问;同时hierarchy增加对region_id查找的判空,以避免在一个region扫描命中后,hierarchy中该region又被删除,产生的空指针访问。

This commit is contained in:
zhengchao
2020-07-06 16:46:41 +08:00
parent 639feb17b0
commit 41b3628b53
4 changed files with 13 additions and 2 deletions

View File

@@ -34,7 +34,7 @@
#include "stream_fuzzy_hash.h"
#include "gram_index_engine.h"
int MAAT_FRAME_VERSION_3_0_20200703=1;
int MAAT_FRAME_VERSION_3_0_20200706=1;
int is_valid_table_name(const char* str)
{
@@ -715,6 +715,8 @@ void op_expr_add_rule(struct op_expr_t* op_expr,scan_rule_t* p_rule)
}
void Maat_region_inner_free(struct Maat_region_inner* region)
{
assert(region->magic_num==REGION_RULE_MAGIC);
region->magic_num=0;
free(region);
}
@@ -1031,6 +1033,7 @@ int get_district_id(Maat_scanner *scanner,const char* district_str)
struct Maat_region_inner* Maat_region_inner_new(int group_id, int region_id, int table_id, int district_id)
{
struct Maat_region_inner* region=ALLOC(struct Maat_region_inner, 1);
region->magic_num=REGION_RULE_MAGIC;
region->region_id=region_id;
region->group_id=group_id;
region->table_id=table_id;