Thread (4 messages) 4 messages, 4 authors, 2025-03-15

Re: [PATCH] crypto: virtio - Erase some sensitive memory when it is freed

From: Jason Wang <hidden>
Date: 2025-03-10 04:55:53
Also in: kernel-janitors, linux-crypto, lkml

On Tue, Mar 4, 2025 at 3:08 AM Christophe JAILLET
[off-list ref] wrote:
quoted hunk ↗ jump to hunk
virtcrypto_clear_request() does the same as the code here, but uses
kfree_sensitive() for one of the free operation.

So, better safe than sorry, use virtcrypto_clear_request() directly to
save a few lines of code and cleanly free the memory.

Signed-off-by: Christophe JAILLET <redacted>
---
I've no idea if this is needed or not, but it looks not consistent to me.

If safe as-is, maybe the kfree_sensitive() in virtcrypto_clear_request()
should be removed instead.
---
 drivers/crypto/virtio/virtio_crypto_core.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/crypto/virtio/virtio_crypto_core.c b/drivers/crypto/virtio/virtio_crypto_core.c
index d0278eb568b9..0d522049f595 100644
--- a/drivers/crypto/virtio/virtio_crypto_core.c
+++ b/drivers/crypto/virtio/virtio_crypto_core.c
@@ -480,10 +480,8 @@ static void virtcrypto_free_unused_reqs(struct virtio_crypto *vcrypto)

        for (i = 0; i < vcrypto->max_data_queues; i++) {
                vq = vcrypto->data_vq[i].vq;
-               while ((vc_req = virtqueue_detach_unused_buf(vq)) != NULL) {
-                       kfree(vc_req->req_data);
-                       kfree(vc_req->sgs);
-               }
+               while ((vc_req = virtqueue_detach_unused_buf(vq)) != NULL)
+                       virtcrypto_clear_request(vc_req);
                cond_resched();
        }
 }
--
2.48.1
Acked-by: Jason Wang <redacted>

Thanks
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help