
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> Signed-off-by: JiangShui Yang <yangjiangshui@h-partners.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 aab3088..8adc964 100644 --- a/src/uadk_async.c +++ b/src/uadk_async.c @@ -339,7 +339,7 @@ static void *async_poll_process_func(void *args) op->retry = 0; 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 a801166..59753da 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; } @@ -565,7 +561,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 facfc0e..b7d17c4 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 e07667d..69f9c5c 100644 --- a/src/uadk_digest.c +++ b/src/uadk_digest.c @@ -801,7 +801,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 f3ab94b..7e94fbc 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 65e78c3..21f01a2 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