diff mbox

[1/1] Fix loop logic in vhost_net_start()'s error path

Message ID 1284458772-6474-1-git-send-email-Jes.Sorensen@redhat.com
State New
Headers show

Commit Message

Jes Sorensen Sept. 14, 2010, 10:06 a.m. UTC
From: Jes Sorensen <Jes.Sorensen@redhat.com>

file.index is unsigned, hence 'while (--file.index >= 0)' will loop
forever. Change it to do {} while (file.index-- > 0)

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
---
 hw/vhost_net.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
diff mbox

Patch

diff --git a/hw/vhost_net.c b/hw/vhost_net.c
index 4a7b819..b1f8072 100644
--- a/hw/vhost_net.c
+++ b/hw/vhost_net.c
@@ -151,10 +151,10 @@  int vhost_net_start(struct vhost_net *net,
     return 0;
 fail:
     file.fd = -1;
-    while (--file.index >= 0) {
+    do {
         int r = ioctl(net->dev.control, VHOST_NET_SET_BACKEND, &file);
         assert(r >= 0);
-    }
+    } while (file.index-- > 0);
     net->vc->info->poll(net->vc, true);
     vhost_dev_stop(&net->dev, dev);
     if (net->dev.acked_features & (1 << VIRTIO_NET_F_MRG_RXBUF)) {