From: ymf <yangmengfei1394@xxxxxxxxxxxxxx> We are trying to use kernel ecdsa algorithm to sign something. When we call the crypto_akcipher_set_priv_key function, the system collapses because it comes to NULL pointer.We find out kerenl ecdsa algorithm has not offered the set_priv_key function. So we think it might be necessary to check whether set_priv_key is available when crypto_akcipher_set_priv_key is called. Signed-off-by: ymf <yangmengfei1394@xxxxxxxxxxxxxx> --- include/crypto/akcipher.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/include/crypto/akcipher.h b/include/crypto/akcipher.h index f35fd653e4e5..a68f0e23bf89 100644 --- a/include/crypto/akcipher.h +++ b/include/crypto/akcipher.h @@ -459,7 +459,9 @@ static inline int crypto_akcipher_set_priv_key(struct crypto_akcipher *tfm, unsigned int keylen) { struct akcipher_alg *alg = crypto_akcipher_alg(tfm); - - return alg->set_priv_key(tfm, key, keylen); + if (likely(alg->set_priv_key != NULL)) + return alg->set_priv_key(tfm, key, keylen); + else + return -EPERM; } #endif -- 2.34.1