Thread (4 messages) flat view 4 messages, 2 authors, 2016-08-03

Re: [PATCH -next v2] virtio: fix possible memory leak in virtqueue_add()

From: "Michael S. Tsirkin" <mst@redhat.com>
Date: 2016-08-03 04:22:15
Also in: lkml

On Tue, Aug 02, 2016 at 02:16:31PM +0000, Wei Yongjun wrote:
'desc' is malloced in virtqueue_add() and should be freed before
leaving from the error handling cases, otherwise it will cause
memory leak.

Signed-off-by: Wei Yongjun <redacted>
Appliecd except I moved this to before END_USE - seems
cleaner as alloc is caller after START_USE.
quoted hunk ↗ jump to hunk
---
 drivers/virtio/virtio_ring.c | 2 ++
 1 file changed, 2 insertions(+)
diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c
index 114a0c8..e4be912 100644
--- a/drivers/virtio/virtio_ring.c
+++ b/drivers/virtio/virtio_ring.c
@@ -328,6 +328,8 @@ static inline int virtqueue_add(struct virtqueue *_vq,
 		if (out_sgs)
 			vq->notify(&vq->vq);
 		END_USE(vq);
+		if (indirect)
+			kfree(desc);
 		return -ENOSPC;
 	}
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help