diff --git a/src/core/tcp_in.c b/src/core/tcp_in.c index be6f613c..96406411 100644 --- a/src/core/tcp_in.c +++ b/src/core/tcp_in.c @@ -1900,11 +1900,11 @@ tcp_parseopt(struct tcp_pcb *pcb) LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: bad length\n")); return; } + /* An WND_SCALE option with the right option length. */ + data = tcp_getoptbyte(); /* If syn was received with wnd scale option, activate wnd scale opt, but only if this is not a retransmission */ if ((flags & TCP_SYN) && !(pcb->flags & TF_WND_SCALE)) { - /* An WND_SCALE option with the right option length. */ - data = tcp_getoptbyte(); pcb->snd_scale = data; if (pcb->snd_scale > 14U) { pcb->snd_scale = 14U;