diff --git a/CHANGELOG b/CHANGELOG index 3545252d..85f706b6 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -100,6 +100,9 @@ HISTORY ++ Bugfixes: + 2014-05-20: Simon Goldschmidt + * tcp_out.c: fixed bug #37184 tcp_write problem for pcbs in the SYN_SENT state + 2014-05-19: Simon Goldschmidt * *.h: Fixed bug #35874 reserved identifier violation (removed leading underscores from header include guards) diff --git a/src/core/tcp_out.c b/src/core/tcp_out.c index 9e842780..bd063c82 100644 --- a/src/core/tcp_out.c +++ b/src/core/tcp_out.c @@ -375,6 +375,7 @@ tcp_write(struct tcp_pcb *pcb, const void *arg, u16_t len, u8_t apiflags) err_t err; /* don't allocate segments bigger than half the maximum window we ever received */ u16_t mss_local = LWIP_MIN(pcb->mss, pcb->snd_wnd_max/2); + mss_local = mss_local ? mss_local : pcb->mss; #if LWIP_NETIF_TX_SINGLE_PBUF /* Always copy to try to create single pbufs for TX */