Skip to content

Commit b64140c

Browse files
Chen Ridongherbertx
authored andcommitted
crypto: caam - add error check to caam_rsa_set_priv_key_form
The caam_rsa_set_priv_key_form did not check for memory allocation errors. Add the checks to the caam_rsa_set_priv_key_form functions. Fixes: 52e26d7 ("crypto: caam - add support for RSA key form 2") Signed-off-by: Chen Ridong <[email protected]> Reviewed-by: Gaurav Jain <[email protected]> Reviewed-by: Horia Geantă <[email protected]> Signed-off-by: Herbert Xu <[email protected]>
1 parent 35b2237 commit b64140c

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

drivers/crypto/caam/caampkc.c

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -984,7 +984,7 @@ static int caam_rsa_set_pub_key(struct crypto_akcipher *tfm, const void *key,
984984
return -ENOMEM;
985985
}
986986

987-
static void caam_rsa_set_priv_key_form(struct caam_rsa_ctx *ctx,
987+
static int caam_rsa_set_priv_key_form(struct caam_rsa_ctx *ctx,
988988
struct rsa_key *raw_key)
989989
{
990990
struct caam_rsa_key *rsa_key = &ctx->key;
@@ -994,7 +994,7 @@ static void caam_rsa_set_priv_key_form(struct caam_rsa_ctx *ctx,
994994

995995
rsa_key->p = caam_read_raw_data(raw_key->p, &p_sz);
996996
if (!rsa_key->p)
997-
return;
997+
return -ENOMEM;
998998
rsa_key->p_sz = p_sz;
999999

10001000
rsa_key->q = caam_read_raw_data(raw_key->q, &q_sz);
@@ -1029,7 +1029,7 @@ static void caam_rsa_set_priv_key_form(struct caam_rsa_ctx *ctx,
10291029

10301030
rsa_key->priv_form = FORM3;
10311031

1032-
return;
1032+
return 0;
10331033

10341034
free_dq:
10351035
kfree_sensitive(rsa_key->dq);
@@ -1043,6 +1043,7 @@ static void caam_rsa_set_priv_key_form(struct caam_rsa_ctx *ctx,
10431043
kfree_sensitive(rsa_key->q);
10441044
free_p:
10451045
kfree_sensitive(rsa_key->p);
1046+
return -ENOMEM;
10461047
}
10471048

10481049
static int caam_rsa_set_priv_key(struct crypto_akcipher *tfm, const void *key,
@@ -1088,7 +1089,9 @@ static int caam_rsa_set_priv_key(struct crypto_akcipher *tfm, const void *key,
10881089
rsa_key->e_sz = raw_key.e_sz;
10891090
rsa_key->n_sz = raw_key.n_sz;
10901091

1091-
caam_rsa_set_priv_key_form(ctx, &raw_key);
1092+
ret = caam_rsa_set_priv_key_form(ctx, &raw_key);
1093+
if (ret)
1094+
goto err;
10921095

10931096
return 0;
10941097

0 commit comments

Comments
 (0)