mirror of https://github.com/wolfSSL/wolfssh.git
wolfSSH_ChannelIdRead() has no rekey guard, so a drained channel still reports zero mid-rekey and the drain loop calls the reply in. That send returns WS_REKEYING before it prepares a packet, so nothing is queued. - take the send's status instead of discarding it - latch eofAnswered and ChildRunning on every status but WS_REKEYING, so the reply is retried on a later pass; the KEX traffic wakes it - a short send is left latching: it bundled the EOF and set eofTxd, so a retry queues nothing and the loop would stall in an untimed select waiting on a peer that has already half-closed - same change in the Espressif copy |
||
|---|---|---|
| .. | ||
| CSBENCH | ||
| Espressif | ||
| IAR-EWARM | ||
| Linux-FATFS | ||
| MQX | ||
| Renesas | ||
| STM32CUBE | ||
| mplabx | ||
| winvs | ||
| include.am | ||