1. The echoserver's sftp_worker() was treating the WS_CHAN_RXD status as
an error and failing out. Updated to clear the error status.
2. wolfSSH_SFTP_read() was also treating WS_CHAN_RXD status as an error
and terminating the transfer. Update to treat like the other status.
When using a small file buffer for SCP, there was a combination of file
size and channel window size where SCP would read the remainder of the
file, close it, send a small message because the peer's window was full,
then try reading the file again. The change keeps trying to send if the
file buffer still has data.
(ZD #13808)
1. Changed "ssh_client" to "ssh". This example is intended to use the
usual ssh client.
2. Changed a later section header to be different from an earlier one.
(examples)
3. Added some backticks around some short phrases that are meant to be
commands or something included in code.
4. Added some links.
5. Update the build directions.
6. A bunch of lines were longer than 80 columns or got really close.
These were rewrapped to be a little shorter. Whitespace only.
7. Remove non-markdown README file.
The OSS-Fuzz detected a possible use of uninitialized data. Since it is
text output for the STDERR of the peer, make sure the string is actually
null terminated before fprintf to stderr.
1. client.c: It was warning a recommendation to tag the function
`readInput()` as non-return. Changed the err_sys() calls to
`fprintf(stderr, ...)` and then return from the function.
2. internal.c: In functions `DoKexInit()` and
`DoUserAuthRequestPublicKey()`, initialized a couple variables that
could be used uninitialized.
3. wolfsftp.c: Fixed a variable that was shadowing a global label.
4. wolfsftp.c: In function `wolfSSH_SFTP_RecvFSTAT()`, initialized a
variable that could be used uninitialized.
5. scpclient.c: The command line argument was read into a char value
assuming it was signed, which is usually true. On the PowerPC this
value is unsigned. Promoted it to int to match the other tools.
1. configure.ac: Check that the DECLs for `pread()` and `pwrite()` exist
in unistd.h.
2. port.c: If `pread()` or `pwrite()` aren't available, use the local
versions that are wrappers around `seek()` and `read()` and
`write()`.
1. All the sources for the tests and examples did not have an include
for config.h. This fixed some inconsistent builds with an older
version of gcc.
2. Moved config.h from the src directory to the top level of the repo
directory.
1. Free the handshake hash right after final.
2. Change GenerateKeys() to take a hashId as a parameter.
3. Clear the handshake hash ID right after freeing.
4. Free the handshake hash if the hash ID isn't NONE in
HandshakeINfoFree.