Repository: mina-sshd Updated Branches: refs/heads/master 4ea5f2b8e -> c703a1f6c
[SSHD-738] "BufferException: Underflow" warning is frequently reported Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/c703a1f6 Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/c703a1f6 Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/c703a1f6 Branch: refs/heads/master Commit: c703a1f6c2400c8cc954bd4c6762f69d1091a6f8 Parents: 4ea5f2b Author: Guillaume Nodet <gno...@apache.org> Authored: Wed Oct 25 18:26:09 2017 +0200 Committer: Guillaume Nodet <gno...@apache.org> Committed: Wed Oct 25 18:26:09 2017 +0200 ---------------------------------------------------------------------- .../sshd/common/session/helpers/AbstractSession.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/c703a1f6/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java b/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java index e5f40ce..9e265c8 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java @@ -22,6 +22,7 @@ import java.io.IOException; import java.io.InterruptedIOException; import java.net.SocketAddress; import java.net.SocketTimeoutException; +import java.nio.BufferOverflowException; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Collection; @@ -88,6 +89,7 @@ import org.apache.sshd.common.util.Pair; import org.apache.sshd.common.util.Readable; import org.apache.sshd.common.util.ValidateUtils; import org.apache.sshd.common.util.buffer.Buffer; +import org.apache.sshd.common.util.buffer.BufferException; import org.apache.sshd.common.util.buffer.BufferUtils; import org.apache.sshd.common.util.buffer.ByteArrayBuffer; @@ -740,7 +742,14 @@ public abstract class AbstractSession extends AbstractKexFactoryManager implemen protected void handleDisconnect(Buffer buffer) throws Exception { int code = buffer.getInt(); String message = buffer.getString(); - String languageTag = buffer.getString(); + String languageTag; + // SSHD-738: avoid spamming the log with uninteresting + // messages caused by buggy OpenSSH < 5.5 + if (buffer.available() > 0) { + languageTag = buffer.getString(); + } else { + languageTag = ""; + } handleDisconnect(code, message, languageTag, buffer); }