virtio-crypto: fix memory leak in virtio_crypto_alg_skcipher_close_session()
authorWei Yongjun <weiyongjun1@huawei.com>
Mon, 14 Nov 2022 11:07:40 +0000 (11:07 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Jan 2023 11:02:08 +0000 (12:02 +0100)
[ Upstream commit b1d65f717cd6305a396a8738e022c6f7c65cfbe8 ]

'vc_ctrl_req' is alloced in virtio_crypto_alg_skcipher_close_session(),
and should be freed in the invalid ctrl_status->status error handling
case. Otherwise there is a memory leak.

Fixes: 0756ad15b1fe ("virtio-crypto: use private buffer for control request")
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Message-Id: <20221114110740.537276-1-weiyongjun@huaweicloud.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Gonglei <arei.gonglei@huawei.com>
Acked-by: zhenwei pi<pizhenwei@bytedance.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/crypto/virtio/virtio_crypto_skcipher_algs.c

index e553cca..e587628 100644 (file)
@@ -239,7 +239,8 @@ static int virtio_crypto_alg_skcipher_close_session(
                pr_err("virtio_crypto: Close session failed status: %u, session_id: 0x%llx\n",
                        ctrl_status->status, destroy_session->session_id);
 
-               return -EINVAL;
+               err = -EINVAL;
+               goto out;
        }
 
        err = 0;