Hi folks,
When using libssh with uclibc I noticed that the behavior of
ssh_packet_socket_callback ultimately depends on the behavior of
malloc (which can be different than glibc's depending on compile-time
flags). This is due to circumstances where decryption of zero length
buffers is attempted. The following patch set removes a particular
attempt to decrypt zero bytes and makes packet {en,de}cryption fail
deterministically (regardless of malloc behavior) on zero length
attempts.
Tested with unit tests and examples/sample.c connecting to OpenSSH
sshd. SSH1 code untested (experienced unexpected problems getting
libssh to be an SSH1 client and server), but seems likely to work.
Alan Dunn (2):
packet: Do not decrypt zero length rest of buffer
packet_crypt: Make packet_{en,de}crypt fail consistently on len == 0
src/packet.c | 16 ++++++++++------
src/packet1.c | 5 ++++-
src/packet_crypt.c | 6 ++++--
3 files changed, 18 insertions(+), 9 deletions(-)
--
1.7.9.5