crypto: akcipher - Do not copy dst if it is NULL
authorHerbert Xu <herbert@gondor.apana.org.au>
Tue, 27 Jun 2023 09:59:32 +0000 (17:59 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Tue, 27 Jun 2023 09:59:52 +0000 (17:59 +0800)
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>
crypto/akcipher.c

index e9b6ddc..52813f0 100644 (file)
@@ -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;