In general, Use kzfree() to replace memset() + kfree() is feasible and resonable. But It's better to use memzero_explicit() to replace memset() in crypto cases.
Signed-off-by: zhong jiang <zhongji...@huawei.com> --- drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c index 113f608..7e4f32f 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.c @@ -960,9 +960,11 @@ int ixgbe_ipsec_vf_add_sa(struct ixgbe_adapter *adapter, u32 *msgbuf, u32 vf) return 0; err_aead: - kzfree(xs->aead); + memzero_explicit(xs->aead, sizeof(*xs->aead)); + kfree(xs->aead); err_xs: - kzfree(xs); + memzero_explicit(xs, sizeof(*xs)); + kfree(xs); err_out: msgbuf[1] = err; return err; @@ -1047,7 +1049,8 @@ int ixgbe_ipsec_vf_del_sa(struct ixgbe_adapter *adapter, u32 *msgbuf, u32 vf) ixgbe_ipsec_del_sa(xs); /* remove the xs that was made-up in the add request */ - kzfree(xs); + memzero_explicit(xs, sizeof(*xs)); + kfree(xs); return 0; } -- 1.7.12.4