--- src/tcp_fsm.c_ 2005-10-20 17:04:18.000000000 +0200
+++ src/tcp_fsm.c 2015-07-12 17:12:46.000000000 +0200
@@ -1060,7 +1060,7 @@
* If it's before recv_next, we've seen it all before; if it's after
* then the peer (or someone else) sent more than we said we could take.
*/
- if ((unsigned)len - ldiff > s->adv_win)
+ if ((unsigned)len - ldiff > s->max_rx_data - s->rx_datalen)
{
TCP_TRACE (("tcp_ProcessData (%u): packet ends outside %lu/%lu\n",
__LINE__, s->recv_next, s->recv_next + s->adv_win));
@@ -1210,7 +1210,7 @@
}