
From: lizhi <lizhi206@huawei.com> Upstream: Yes Bugfix or Feature: Bugfix DTS: DTS2024111417327 Change eops_params_cfg return type from int to void. Clear params pointer after session uninit to prevent leaks. Signed-off-by: lizhi <lizhi206@huawei.com> Signed-off-by: Qi Tao <taoqi10@huawei.com> --- include/drv/wd_ecc_drv.h | 2 +- wd_ecc.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/include/drv/wd_ecc_drv.h b/include/drv/wd_ecc_drv.h index 37908cd2..085bd4ae 100644 --- a/include/drv/wd_ecc_drv.h +++ b/include/drv/wd_ecc_drv.h @@ -178,7 +178,7 @@ struct wd_ecc_out { struct wd_ecc_extend_ops { void *params; /* the params are passed to the following ops */ - int (*eops_params_cfg)(struct wd_ecc_sess_setup *setup, + void (*eops_params_cfg)(struct wd_ecc_sess_setup *setup, struct wd_ecc_curve *cv, void *params); int (*sess_init)(void **params); void (*sess_uninit)(void *params); diff --git a/wd_ecc.c b/wd_ecc.c index 7ae5f757..cf5c4720 100644 --- a/wd_ecc.c +++ b/wd_ecc.c @@ -1189,8 +1189,10 @@ static int wd_ecc_sess_eops_init(struct wd_ecc_sess *sess) static void wd_ecc_sess_eops_uninit(struct wd_ecc_sess *sess) { - if (sess->eops.sess_uninit) + if (sess->eops.sess_uninit) { sess->eops.sess_uninit(sess->eops.params); + sess->eops.params = NULL; + } } static void wd_ecc_sess_eops_cfg(struct wd_ecc_sess_setup *setup, @@ -1274,7 +1276,7 @@ void wd_ecc_free_sess(handle_t sess) if (sess_t->sched_key) free(sess_t->sched_key); del_sess_key(sess_t); - wd_ecc_sess_eops_uninit(sess); + wd_ecc_sess_eops_uninit(sess_t); free(sess_t); } -- 2.33.0