Follow-up Comment #4, bug #27445 (project lwip):
if ((u16_t)(pcb->cwnd + pcb->mss) > pcb->cwnd) { ... }
From a coding standpoint, the 2 variables are u16_t and the cast has no
effect. From a runtime standpoint, is the cast always correct?
If the addition could overflow, the test fails. You should then cast to
u32_t. But I don't think those values can ever cause an overflow.
Maybe I'm picky - when I see a cast I think "we're changing what the compiler
will normally do". In this case we're not and at worse, could fail on an
overflow.