summaryrefslogtreecommitdiff
path: root/crypto/akcipher.c
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2023-06-27 17:59:32 +0800
committerHerbert Xu <herbert@gondor.apana.org.au>2023-06-27 17:59:52 +0800
commit486bfb05913ac9969a3a71a4dc48f17f31cb162d (patch)
tree52e12ccce05a85fd41db07c74aca5059dd8a7d84 /crypto/akcipher.c
parent891ebfdfa3d08bf55ebec523c99bb68ac9c34cf7 (diff)
downloadlwn-486bfb05913ac9969a3a71a4dc48f17f31cb162d.tar.gz
lwn-486bfb05913ac9969a3a71a4dc48f17f31cb162d.zip
crypto: akcipher - Do not copy dst if it is NULL
As signature verification has a NULL destination buffer, the pointer needs to be checked before the memcpy is done. Fixes: addde1f2c966 ("crypto: akcipher - Add sync interface without SG lists") Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/akcipher.c')
-rw-r--r--crypto/akcipher.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/crypto/akcipher.c b/crypto/akcipher.c
index e9b6ddcdf124..52813f0b19e4 100644
--- a/crypto/akcipher.c
+++ b/crypto/akcipher.c
@@ -234,7 +234,8 @@ EXPORT_SYMBOL_GPL(crypto_akcipher_sync_prep);
int crypto_akcipher_sync_post(struct crypto_akcipher_sync_data *data, int err)
{
err = crypto_wait_req(err, &data->cwait);
- memcpy(data->dst, data->buf, data->dlen);
+ if (data->dst)
+ memcpy(data->dst, data->buf, data->dlen);
data->dlen = data->req->dst_len;
kfree_sensitive(data->req);
return err;