From 1d61ebaa3614504b35ca9881c1f3ffbd87a9efb7 Mon Sep 17 00:00:00 2001 From: jani Date: Wed, 5 Nov 2003 08:32:25 +0000 Subject: [PATCH] prevent rcv_wnd wrapping in tcp_recved.patch #2201 --- src/core/tcp.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/core/tcp.c b/src/core/tcp.c index 62a4f49a..4ab619da 100644 --- a/src/core/tcp.c +++ b/src/core/tcp.c @@ -442,9 +442,10 @@ tcp_listen(struct tcp_pcb *pcb) void tcp_recved(struct tcp_pcb *pcb, u16_t len) { - pcb->rcv_wnd += len; - if (pcb->rcv_wnd > TCP_WND) { + if ((u32_t)pcb->rcv_wnd + len > TCP_WND) { pcb->rcv_wnd = TCP_WND; + } else { + pcb->rcv_wnd += len; } if (!(pcb->flags & TF_ACK_DELAY) && !(pcb->flags & TF_ACK_NOW)) {