hierynomus / hierynomus/sshj

Writing more than 2^15 causes Exception, more than 2^21 bytes of data at once causes hang

Open
#145 8 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Java
Stars
2.7k
Forks
620
Avg merge
3d 23h
Merged PRs (30d)
11

Description

If I try to write 32768 bytes of data or once or more, I get the follow error:

net.schmizz.sshj.sftp.SFTPException: EOF while reading packet

at net.schmizz.sshj.sftp.PacketReader.readIntoBuffer(PacketReader.java:52)
at net.schmizz.sshj.sftp.PacketReader.getPacketLength(PacketReader.java:57)
at net.schmizz.sshj.sftp.PacketReader.readPacket(PacketReader.java:73)
at net.schmizz.sshj.sftp.PacketReader.run(PacketReader.java:85)
Suppressed: net.schmizz.sshj.connection.ConnectionException: Stream closed
at net.schmizz.sshj.connection.channel.ChannelOutputStream.checkClose(ChannelOutputStream.java:178)
at net.schmizz.sshj.connection.channel.ChannelOutputStream.write(ChannelOutputStream.java:159)
at net.schmizz.sshj.connection.channel.ChannelOutputStream.write(ChannelOutputStream.java:153)
at net.schmizz.sshj.sftp.SFTPEngine.transmit(SFTPEngine.java:269)
at net.schmizz.sshj.sftp.SFTPEngine.request(SFTPEngine.java:124)
at net.schmizz.sshj.sftp.RemoteResource.close(RemoteResource.java:53)
...

If I try to write more than 2^21 bytes at once, in SFTP.transmit(), remoteWindowSize becomes 0, causing it to call win.awaitExpansion(), which hangs forever right now as I don't think it ever sends a request to increase the window size.

Tested with 0.9.0 against OpenSSH

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.