From b612ef25076258d58f935b4ffcec43c5c72af7f9 Mon Sep 17 00:00:00 2001 From: zhengchao Date: Mon, 10 Jun 2019 13:58:08 +0800 Subject: [PATCH] =?UTF-8?q?decrypt=20mirror=20exdata=20free=20=E5=88=A4?= =?UTF-8?q?=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugin/business/traffic-mirror/src/entry.cpp | 21 ++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/plugin/business/traffic-mirror/src/entry.cpp b/plugin/business/traffic-mirror/src/entry.cpp index 85b46ed..d276a86 100644 --- a/plugin/business/traffic-mirror/src/entry.cpp +++ b/plugin/business/traffic-mirror/src/entry.cpp @@ -39,7 +39,10 @@ void policy_table_ex_data_dup_cb(int table_id, MAAT_PLUGIN_EX_DATA * to, void policy_table_ex_data_free_cb(int table_id, MAAT_PLUGIN_EX_DATA * ad, long argl, void * argp) { struct policy_table_ex_data * ex_data = (struct policy_table_ex_data *)*ad; - policy_table_ex_data_free(ex_data); + if(ex_data) + { + policy_table_ex_data_free(ex_data); + } } void policy_table_ex_data_new_cb(int table_id, const char * key, const char * table_line, @@ -136,14 +139,24 @@ void profile_table_ex_data_dup_cb(int table_id, MAAT_PLUGIN_EX_DATA * to, MAAT_PLUGIN_EX_DATA * from, long argl, void * argp) { struct profile_table_ex_data * ex_data = (struct profile_table_ex_data *)*from; - __sync_add_and_fetch(&ex_data->atomic_refcnt, 1); - *to = (void *)ex_data; + if(ex_data) + { + __sync_add_and_fetch(&ex_data->atomic_refcnt, 1); + *to = (void *)ex_data; + } + else + { + *to = NULL; + } } void profile_table_ex_data_free_cb(int table_id, MAAT_PLUGIN_EX_DATA * ad, long argl, void * argp) { struct profile_table_ex_data * ex_data = (struct profile_table_ex_data *)*ad; - profile_table_ex_data_free(ex_data); + if(ex_data) + { + profile_table_ex_data_free(ex_data); + } } void profile_table_ex_data_new_cb(int table_id, const char * key, const char * table_line,