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

From: Wei Yongjun
Date: Tue Aug 02 2016 - 10:17:14 EST


'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 <weiyj.lk@xxxxxxxxx>
---
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;
}