From: "Michael S. Tsirkin" <mst@redhat.com>
To: Zheyu Ma <zheyuma97@gmail.com>
Cc: "Gonglei (Arei)" <arei.gonglei@huawei.com>, qemu-devel@nongnu.org
Subject: Re: [PATCH] hw/virtio/virtio-crypto: Fix op_code assignment in virtio_crypto_create_asym_session
Date: Tue, 2 Jul 2024 17:05:19 -0400 [thread overview]
Message-ID: <20240702170444-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20240702210227.3059947-1-zheyuma97@gmail.com>
On Tue, Jul 02, 2024 at 11:02:27PM +0200, Zheyu Ma wrote:
> The assignment of the op_code in the virtio_crypto_create_asym_session
> function was moved before its usage to ensure it is correctly set.
> Previously, if the function failed during the key_len check, the op_code
when you say Previously, you mean "currently"?
> did not have a proper value, causing virtio_crypto_free_create_session_req
and here did not -> does not.
> to not free the memory correctly, leading to a memory leak.
>
> By setting the op_code before performing any checks, we ensure that
> virtio_crypto_free_create_session_req has the correct context to
> perform cleanup operations properly, thus preventing memory leaks.
>
> ASAN log:
> ==3055068==ERROR: LeakSanitizer: detected memory leaks
> Direct leak of 512 byte(s) in 1 object(s) allocated from:
> #0 0x5586a75e6ddd in malloc llvm/compiler-rt/lib/asan/asan_malloc_linux.cpp:129:3
> #1 0x7fb6b63b6738 in g_malloc (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x5e738)
> #2 0x5586a864bbde in virtio_crypto_handle_ctrl hw/virtio/virtio-crypto.c:407:19
> #3 0x5586a94fc84c in virtio_queue_notify_vq hw/virtio/virtio.c:2277:9
> #4 0x5586a94fc0a2 in virtio_queue_host_notifier_read hw/virtio/virtio.c:3641:9
>
> Signed-off-by: Zheyu Ma <zheyuma97@gmail.com>
> ---
> hw/virtio/virtio-crypto.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/virtio/virtio-crypto.c b/hw/virtio/virtio-crypto.c
> index bbe8aa4b99..5034768bff 100644
> --- a/hw/virtio/virtio-crypto.c
> +++ b/hw/virtio/virtio-crypto.c
> @@ -205,6 +205,7 @@ virtio_crypto_create_asym_session(VirtIOCrypto *vcrypto,
> int queue_index;
> uint32_t algo, keytype, keylen;
>
> + sreq->info.op_code = opcode;
> algo = ldl_le_p(&sess_req->para.algo);
> keytype = ldl_le_p(&sess_req->para.keytype);
> keylen = ldl_le_p(&sess_req->para.keylen);
> @@ -224,7 +225,6 @@ virtio_crypto_create_asym_session(VirtIOCrypto *vcrypto,
> iov_discard_front(&iov, &out_num, keylen);
> }
>
> - sreq->info.op_code = opcode;
> asym_info = &sreq->info.u.asym_sess_info;
> asym_info->algo = algo;
> asym_info->keytype = keytype;
> --
> 2.34.1
next prev parent reply other threads:[~2024-07-02 21:05 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-02 21:02 [PATCH] hw/virtio/virtio-crypto: Fix op_code assignment in virtio_crypto_create_asym_session Zheyu Ma
2024-07-02 21:05 ` Michael S. Tsirkin [this message]
-- strict thread matches above, loose matches on Subject: below --
2024-07-02 21:04 Zheyu Ma
2024-07-02 21:05 ` Michael S. Tsirkin
2024-07-02 21:20 ` Zheyu Ma
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240702170444-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=arei.gonglei@huawei.com \
--cc=qemu-devel@nongnu.org \
--cc=zheyuma97@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.