
Fixed the following issues: 1. Remove redundant function return value check. 2. Modify inappropriate exception printing. 3. There is no need to check the return value of async_wake_job(). Only need to check req->state to determine if there is an exception in packet reception. Therefore, add "(void)" before the function call. 4. Free the allocated memory before returning an error. 5. The callback function's parameter list does not match the function pointer definition. Signed-off-by: Qi Tao <taoqi10@huawei.com> --- src/uadk_aead.c | 4 ++-- src/uadk_async.c | 2 +- src/uadk_cipher.c | 6 +----- src/uadk_dh.c | 2 +- src/uadk_digest.c | 2 +- src/uadk_pkey.c | 2 +- src/uadk_prov_aead.c | 4 ++-- src/uadk_prov_cipher.c | 4 ++-- src/uadk_prov_dh.c | 2 +- src/uadk_prov_digest.c | 6 +++--- src/uadk_prov_hmac.c | 6 +++--- src/uadk_prov_init.c | 4 +++- src/uadk_prov_pkey.c | 2 +- src/uadk_prov_rsa.c | 2 +- src/uadk_rsa.c | 2 +- 15 files changed, 24 insertions(+), 26 deletions(-) diff --git a/src/uadk_aead.c b/src/uadk_aead.c index 1da7753..69223f1 100644 --- a/src/uadk_aead.c +++ b/src/uadk_aead.c @@ -469,7 +469,7 @@ static int do_aead_sync_inner(struct aead_priv_ctx *priv, unsigned char *out, priv->req.state = 0; ret = wd_do_aead_sync(priv->sess, &priv->req); if (unlikely(ret < 0 || priv->req.state)) { - fprintf(stderr, "do aead task failed, msg state: %d, ret: %d, state: %u!\n", + fprintf(stderr, "do aead task failed, msg state: %u, ret: %d, state: %u!\n", state, ret, priv->req.state); return RET_FAIL; } @@ -547,7 +547,7 @@ static void *uadk_e_aead_cb(struct wd_aead_req *req, void *data) if (op && op->job && !op->done) { op->done = 1; async_free_poll_task(op->idx, 1); - async_wake_job(op->job); + (void)async_wake_job(op->job); } return NULL; diff --git a/src/uadk_async.c b/src/uadk_async.c index 7536bd5..0f92dde 100644 --- a/src/uadk_async.c +++ b/src/uadk_async.c @@ -329,7 +329,7 @@ static void *async_poll_process_func(void *args) if (!poll_queue.is_recv && op->job) { op->done = 1; op->ret = ret; - async_wake_job(op->job); + (void)async_wake_job(op->job); async_free_poll_task(idx, 0); } } diff --git a/src/uadk_cipher.c b/src/uadk_cipher.c index 457e90d..95af193 100644 --- a/src/uadk_cipher.c +++ b/src/uadk_cipher.c @@ -242,10 +242,6 @@ static int uadk_e_cipher_soft_work(EVP_CIPHER_CTX *ctx, unsigned char *out, */ if (!priv->update_iv) { iv = EVP_CIPHER_CTX_iv_noconst(ctx); - if (unlikely(iv == NULL)) { - fprintf(stderr, "get openssl software iv failed.\n"); - return 0; - } memcpy(iv, priv->iv, EVP_CIPHER_CTX_iv_length(ctx)); priv->update_iv = true; } @@ -567,7 +563,7 @@ static void *uadk_e_cipher_cb(struct wd_cipher_req *req, void *data) if (op && op->job && !op->done) { op->done = 1; async_free_poll_task(op->idx, 1); - async_wake_job(op->job); + (void)async_wake_job(op->job); } return NULL; diff --git a/src/uadk_dh.c b/src/uadk_dh.c index 2f2c1cf..011bf56 100644 --- a/src/uadk_dh.c +++ b/src/uadk_dh.c @@ -259,7 +259,7 @@ static void uadk_e_dh_cb(void *req_t) if (op && op->job && !op->done) { op->done = 1; async_free_poll_task(op->idx, 1); - async_wake_job(op->job); + (void)async_wake_job(op->job); } } diff --git a/src/uadk_digest.c b/src/uadk_digest.c index 6827f98..0b4e8c5 100644 --- a/src/uadk_digest.c +++ b/src/uadk_digest.c @@ -802,7 +802,7 @@ static void *uadk_e_digest_cb(void *data) if (op && op->job && !op->done) { op->done = 1; async_free_poll_task(op->idx, 1); - async_wake_job(op->job); + (void)async_wake_job(op->job); } return NULL; diff --git a/src/uadk_pkey.c b/src/uadk_pkey.c index 1f8234b..e05c7d0 100644 --- a/src/uadk_pkey.c +++ b/src/uadk_pkey.c @@ -101,7 +101,7 @@ void uadk_e_ecc_cb(void *req_t) op->done = 1; op->ret = 0; async_free_poll_task(op->idx, 1); - async_wake_job(op->job); + (void)async_wake_job(op->job); } } diff --git a/src/uadk_prov_aead.c b/src/uadk_prov_aead.c index 54e0115..dbbd844 100644 --- a/src/uadk_prov_aead.c +++ b/src/uadk_prov_aead.c @@ -390,7 +390,7 @@ static void *uadk_prov_aead_cb(struct wd_aead_req *req, void *data) if (op && op->job && !op->done) { op->done = 1; async_free_poll_task(op->idx, 1); - async_wake_job(op->job); + (void)async_wake_job(op->job); } return NULL; @@ -800,7 +800,7 @@ static int uadk_get_aead_info(struct aead_priv_ctx *priv) } if (unlikely(i == aead_counts)) { - fprintf(stderr, "failed to setup the private ctx.\n"); + fprintf(stderr, "failed to get aead info.\n"); return UADK_AEAD_FAIL; } diff --git a/src/uadk_prov_cipher.c b/src/uadk_prov_cipher.c index db4a957..dfe6666 100644 --- a/src/uadk_prov_cipher.c +++ b/src/uadk_prov_cipher.c @@ -395,7 +395,7 @@ static int uadk_get_cipher_info(struct cipher_priv_ctx *priv) } } - fprintf(stderr, "failed to setup the private ctx.\n"); + fprintf(stderr, "failed to get cipher info.\n"); return UADK_P_FAIL; } @@ -455,7 +455,7 @@ static void async_cb(struct wd_cipher_req *req, void *data) if (op && op->job && !op->done) { op->done = 1; async_free_poll_task(op->idx, 1); - async_wake_job(op->job); + (void)async_wake_job(op->job); } } diff --git a/src/uadk_prov_dh.c b/src/uadk_prov_dh.c index c75c386..1cb4b45 100644 --- a/src/uadk_prov_dh.c +++ b/src/uadk_prov_dh.c @@ -581,7 +581,7 @@ static void uadk_prov_dh_cb(void *req_t) if (op && op->job && !op->done) { op->done = 1; async_free_poll_task(op->idx, 1); - async_wake_job(op->job); + (void)async_wake_job(op->job); } } diff --git a/src/uadk_prov_digest.c b/src/uadk_prov_digest.c index 7a5bfff..a13d075 100644 --- a/src/uadk_prov_digest.c +++ b/src/uadk_prov_digest.c @@ -303,7 +303,7 @@ static int uadk_get_digest_info(struct digest_priv_ctx *priv) } if (unlikely(i == digest_counts)) { - fprintf(stderr, "failed to setup the private ctx.\n"); + fprintf(stderr, "failed to digest info.\n"); return UADK_DIGEST_FAIL; } @@ -534,7 +534,7 @@ soft_update: return uadk_digest_soft_update(priv, data, data_len); } -static void uadk_async_cb(struct wd_digest_req *req, void *data) +static void uadk_async_cb(struct wd_digest_req *req) { struct uadk_e_cb_info *digest_cb_param; struct wd_digest_req *req_origin; @@ -550,7 +550,7 @@ static void uadk_async_cb(struct wd_digest_req *req, void *data) if (op && op->job && !op->done) { op->done = 1; async_free_poll_task(op->idx, 1); - async_wake_job(op->job); + (void)async_wake_job(op->job); } } diff --git a/src/uadk_prov_hmac.c b/src/uadk_prov_hmac.c index db49612..6bf7947 100644 --- a/src/uadk_prov_hmac.c +++ b/src/uadk_prov_hmac.c @@ -361,7 +361,7 @@ static int uadk_get_hmac_info(struct hmac_priv_ctx *priv) } } - fprintf(stderr, "failed to setup the private ctx, algname = %s.\n", priv->alg_name); + fprintf(stderr, "failed to get hmac info, algname = %s.\n", priv->alg_name); return UADK_HMAC_FAIL; } @@ -529,7 +529,7 @@ soft_init: return uadk_hmac_soft_init(priv); } -static void uadk_hmac_async_cb(struct wd_digest_req *req, void *data) +static void uadk_hmac_async_cb(struct wd_digest_req *req) { struct uadk_e_cb_info *hmac_cb_param; struct wd_digest_req *req_origin; @@ -545,7 +545,7 @@ static void uadk_hmac_async_cb(struct wd_digest_req *req, void *data) if (op && op->job && !op->done) { op->done = 1; async_free_poll_task(op->idx, 1); - async_wake_job(op->job); + (void)async_wake_job(op->job); } } diff --git a/src/uadk_prov_init.c b/src/uadk_prov_init.c index c29500b..20f7068 100644 --- a/src/uadk_prov_init.c +++ b/src/uadk_prov_init.c @@ -470,8 +470,10 @@ int OSSL_provider_init(const OSSL_CORE_HANDLE *handle, ctx->libctx = (OSSL_LIB_CTX *)c_get_libctx(handle); ret = uadk_prov_ctx_set_core_bio_method(ctx); - if (!ret) + if (!ret) { + OPENSSL_free(ctx); return UADK_P_FAIL; + } ret = async_module_init(); if (!ret) diff --git a/src/uadk_prov_pkey.c b/src/uadk_prov_pkey.c index ca853ae..ac4541c 100644 --- a/src/uadk_prov_pkey.c +++ b/src/uadk_prov_pkey.c @@ -362,7 +362,7 @@ void uadk_prov_ecc_cb(void *req_t) ecc_async_op->done = 1; ecc_async_op->ret = 0; async_free_poll_task(ecc_async_op->idx, 1); - async_wake_job(ecc_async_op->job); + (void)async_wake_job(ecc_async_op->job); } } diff --git a/src/uadk_prov_rsa.c b/src/uadk_prov_rsa.c index b9713cc..4351514 100644 --- a/src/uadk_prov_rsa.c +++ b/src/uadk_prov_rsa.c @@ -1275,7 +1275,7 @@ static void uadk_e_rsa_cb(void *req_t) if (op && op->job && !op->done) { op->done = 1; async_free_poll_task(op->idx, 1); - async_wake_job(op->job); + (void)async_wake_job(op->job); } } diff --git a/src/uadk_rsa.c b/src/uadk_rsa.c index 76678a4..1755374 100644 --- a/src/uadk_rsa.c +++ b/src/uadk_rsa.c @@ -1117,7 +1117,7 @@ static void uadk_e_rsa_cb(void *req_t) if (op && op->job && !op->done) { op->done = 1; async_free_poll_task(op->idx, 1); - async_wake_job(op->job); + (void)async_wake_job(op->job); } } -- 2.33.0