[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] Mini-OS: netfront: fix off-by-one error introduced in 7c8f3483



7c8f3483 introduced a break within a loop in netfront.c such that
cons and nr_consumed were no longer always being incremented. The
offset at cons will be processed multiple times with the break in
place.

Remove the break and re-add "some !=0" in the loop for HAVE_LIBC.

Signed-off-by: Sarah Newman <srn@xxxxxxxxx>
---
 netfront.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/netfront.c b/netfront.c
index 0eca5b5..557e8c4 100644
--- a/netfront.c
+++ b/netfront.c
@@ -108,8 +108,10 @@ moretodo:
 
 #ifdef HAVE_LIBC
     some = 0;
-#endif
+    for (cons = dev->rx.rsp_cons; (cons != rp) && !some; nr_consumed++, cons++)
+#else
     for (cons = dev->rx.rsp_cons; cons != rp; nr_consumed++, cons++)
+#endif
     {
         struct net_buffer* buf;
         unsigned char* page;
@@ -135,7 +137,6 @@ moretodo:
                memcpy(dev->data, page+rx->offset, len);
                dev->rlen = len;
                some = 1;
-                break;
            } else
 #endif
                dev->netif_rx(page+rx->offset,rx->status);
-- 
1.9.1


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.