mirror of https://github.com/wolfSSL/wolfssh.git
ReceiveScpConfirmation() takes a WS_EXTDATA off ScpStreamRead()'s return, the rule ssh.h now states for reading an event. FlushQueuedSend() samples the owed write with the session still locked, since the peer reader thread writes ssh->error too, and reports a send that failed there over the event it rode in on. - A pass that delivers stderr while its flush short-writes returns WS_EXTDATA with WS_WANT_WRITE in ssh->error, so the confirmation read aborted the transfer with the stderr undrained. - wolfSSH_stream_read() on the reader thread clears ssh->error with this thread's packet still queued, which ended the flush early and reported it a success. - An event return with a hard send error latched collapsed to WS_SUCCESS, telling the caller a queued packet reached a socket that was gone. |
||
|---|---|---|
| .. | ||
| wolfssh | ||
| wolfsshd | ||
| include.am | ||
| wolfssh-options.c | ||