Revert "tcp_recved: check for overflow and warn about too big values"

This reverts commit 684adaca29.

It changes the behaviour to assert for applications running good so far.

Signed-off-by: Simon Goldschmidt <goldsimon@gmx.de>
This commit is contained in:
Simon Goldschmidt 2018-11-12 21:01:05 +01:00
parent a29fc52633
commit 18b91b2841

View File

@ -971,7 +971,6 @@ void
tcp_recved(struct tcp_pcb *pcb, u16_t len)
{
u32_t wnd_inflation;
tcpwnd_size_t rcv_wnd;
LWIP_ASSERT_CORE_LOCKED();
@ -981,8 +980,10 @@ tcp_recved(struct tcp_pcb *pcb, u16_t len)
LWIP_ASSERT("don't call tcp_recved for listen-pcbs",
pcb->state != LISTEN);
rcv_wnd = pcb->rcv_wnd + len;
if (rcv_wnd < pcb->rcv_wnd || (len != 0 && rcv_wnd == pcb->rcv_wnd)) {
pcb->rcv_wnd = (tcpwnd_size_t)(pcb->rcv_wnd + len);
if (pcb->rcv_wnd > TCP_WND_MAX(pcb)) {
pcb->rcv_wnd = TCP_WND_MAX(pcb);
} else if (pcb->rcv_wnd == 0) {
/* rcv_wnd overflowed */
if (TCP_STATE_IS_CLOSING(pcb->state)) {
/* In passive close, we allow this, since the FIN bit is added to rcv_wnd
@ -992,12 +993,6 @@ tcp_recved(struct tcp_pcb *pcb, u16_t len)
} else {
LWIP_ASSERT("tcp_recved: len wrapped rcv_wnd\n", 0);
}
} else if (rcv_wnd <= TCP_WND_MAX(pcb)) {
pcb->rcv_wnd = rcv_wnd;
} else {
LWIP_ASSERT("tcp_recved: len overflowed TCP_WND_MAX",
rcv_wnd <= TCP_WND_MAX(pcb));
pcb->rcv_wnd = TCP_WND_MAX(pcb);
}
wnd_inflation = tcp_update_rcv_ann_wnd(pcb);