net/ice: fix wild pointer

To avoid wild pointer, pointers should be set to NULL after free them.

Fixes: 1a2fc1799f ("net/ice: reject duplicated flow for flow director")
Fixes: 84dc7a95a2 ("net/ice: enable flow director engine")
Fixes: 0f880c3df1 ("net/ice: add flow director counter resource init/release")

Signed-off-by: Shougang Wang <shougangx.wang@intel.com>
Acked-by: Qiming Yang <qiming.yang@intel.com>
Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>
This commit is contained in:
Shougang Wang 2019-11-13 01:37:58 +00:00 committed by Ferruh Yigit
parent 01af3d0a41
commit 1ad37a2c58

View File

@ -167,9 +167,14 @@ ice_fdir_prof_alloc(struct ice_hw *hw)
fail_mem:
for (fltr_ptype = ICE_FLTR_PTYPE_NONF_NONE + 1;
fltr_ptype < ptype;
fltr_ptype++)
fltr_ptype++) {
rte_free(hw->fdir_prof[fltr_ptype]);
hw->fdir_prof[fltr_ptype] = NULL;
}
rte_free(hw->fdir_prof);
hw->fdir_prof = NULL;
return -ENOMEM;
}
@ -249,8 +254,10 @@ ice_fdir_counter_release(struct ice_pf *pf)
&fdir_info->counter;
uint8_t i;
for (i = 0; i < container->index_free; i++)
for (i = 0; i < container->index_free; i++) {
rte_free(container->pools[i]);
container->pools[i] = NULL;
}
TAILQ_INIT(&container->pool_list);
container->index_free = 0;
@ -400,6 +407,9 @@ ice_fdir_release_filter_list(struct ice_pf *pf)
rte_free(fdir_info->hash_map);
if (fdir_info->hash_table)
rte_hash_free(fdir_info->hash_table);
fdir_info->hash_map = NULL;
fdir_info->hash_table = NULL;
}
/*
@ -526,10 +536,13 @@ ice_fdir_prof_free(struct ice_hw *hw)
for (ptype = ICE_FLTR_PTYPE_NONF_NONE + 1;
ptype < ICE_FLTR_PTYPE_MAX;
ptype++)
ptype++) {
rte_free(hw->fdir_prof[ptype]);
hw->fdir_prof[ptype] = NULL;
}
rte_free(hw->fdir_prof);
hw->fdir_prof = NULL;
}
/* Remove a profile for some filter type */