]> Pileus Git - ~andy/linux/blobdiff - drivers/vhost/net.c
vhost: validate vhost_get_vq_desc return value
[~andy/linux] / drivers / vhost / net.c
index 026be580d318481f6ed3732dd06b6fb2ea2c5160..e1e22e0f01e881fe2961dbf1c43cb56f4e22cade 100644 (file)
@@ -505,9 +505,13 @@ static int get_rx_bufs(struct vhost_virtqueue *vq,
                        r = -ENOBUFS;
                        goto err;
                }
-               d = vhost_get_vq_desc(vq->dev, vq, vq->iov + seg,
+               r = vhost_get_vq_desc(vq->dev, vq, vq->iov + seg,
                                      ARRAY_SIZE(vq->iov) - seg, &out,
                                      &in, log, log_num);
+               if (unlikely(r < 0))
+                       goto err;
+
+               d = r;
                if (d == vq->num) {
                        r = 0;
                        goto err;