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 |
||
|---|---|---|
| .. | ||
| client | ||
| echoserver | ||
| portfwd | ||
| scpclient | ||
| sftpclient | ||
| tpmcertserver | ||
| include.am | ||