[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YzaJPuXVrB97ixvI@gondor.apana.org.au>
Date: Fri, 30 Sep 2022 14:14:22 +0800
From: Herbert Xu <herbert@...dor.apana.org.au>
To: Lei He <helei.sig11@...edance.com>
Cc: mst@...hat.com, arei.gonglei@...wei.com,
linux-crypto@...r.kernel.org, linux-kernel@...r.kernel.org,
pizhenwei@...edance.com
Subject: Re: [PATCH v2 RESEND] virtio-crypto: fix memory-leak
On Mon, Sep 19, 2022 at 03:51:58PM +0800, Lei He wrote:
> From: lei he <helei.sig11@...edance.com>
>
> Fix memory-leak for virtio-crypto akcipher request, this problem is
> introduced by 59ca6c93387d3(virtio-crypto: implement RSA algorithm).
> The leak can be reproduced and tested with the following script
> inside virtual machine:
>
> #!/bin/bash
>
> LOOP_TIMES=10000
>
> # required module: pkcs8_key_parser, virtio_crypto
> modprobe pkcs8_key_parser # if CONFIG_PKCS8_PRIVATE_KEY_PARSER=m
> modprobe virtio_crypto # if CONFIG_CRYPTO_DEV_VIRTIO=m
> rm -rf /tmp/data
> dd if=/dev/random of=/tmp/data count=1 bs=230
>
> # generate private key and self-signed cert
> openssl req -nodes -x509 -newkey rsa:2048 -keyout key.pem \
> -outform der -out cert.der \
> -subj "/C=CN/ST=GD/L=SZ/O=vihoo/OU=dev/CN=always.com/emailAddress=yy@...ays.com"
> # convert private key from pem to der
> openssl pkcs8 -in key.pem -topk8 -nocrypt -outform DER -out key.der
>
> # add key
> PRIV_KEY_ID=`cat key.der | keyctl padd asymmetric test_priv_key @s`
> echo "priv key id = "$PRIV_KEY_ID
> PUB_KEY_ID=`cat cert.der | keyctl padd asymmetric test_pub_key @s`
> echo "pub key id = "$PUB_KEY_ID
>
> # query key
> keyctl pkey_query $PRIV_KEY_ID 0
> keyctl pkey_query $PUB_KEY_ID 0
>
> # here we only run pkey_encrypt becasuse it is the fastest interface
> function bench_pub() {
> keyctl pkey_encrypt $PUB_KEY_ID 0 /tmp/data enc=pkcs1 >/tmp/enc.pub
> }
>
> # do bench_pub in loop to obtain the memory leak
> for (( i = 0; i < ${LOOP_TIMES}; ++i )); do
> bench_pub
> done
>
> Signed-off-by: lei he <helei.sig11@...edance.com>
> Acked-by: Michael S. Tsirkin <mst@...hat.com>
> Reviewed-by: Gonglei <arei.gonglei@...wei.com>
> ---
> drivers/crypto/virtio/virtio_crypto_akcipher_algs.c | 4 ++++
> 1 file changed, 4 insertions(+)
Patch applied. Thanks.
--
Email: Herbert Xu <herbert@...dor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Powered by blists - more mailing lists