diff --git a/plugin/business/traffic-mirror/src/entry.cpp b/plugin/business/traffic-mirror/src/entry.cpp index 6943df5..85b46ed 100644 --- a/plugin/business/traffic-mirror/src/entry.cpp +++ b/plugin/business/traffic-mirror/src/entry.cpp @@ -25,8 +25,15 @@ void policy_table_ex_data_dup_cb(int table_id, MAAT_PLUGIN_EX_DATA * to, MAAT_PLUGIN_EX_DATA * from, long argl, void * argp) { struct policy_table_ex_data * ex_data = (struct policy_table_ex_data *)*from; - __sync_add_and_fetch(&ex_data->atomic_refcnt, 1); - *to = (void *)ex_data; + if(ex_data==NULL) + { + *to=NULL; + } + else + { + __sync_add_and_fetch(&ex_data->atomic_refcnt, 1); + *to = (void *)ex_data; + } } void policy_table_ex_data_free_cb(int table_id, MAAT_PLUGIN_EX_DATA * ad, long argl, void * argp)