Repository: mina-sshd Updated Branches: refs/heads/master ac804674d -> 0c4191183
[SSHD-738] Display more information when buffer underflow exception is thrown while decoding a packet Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/0c419118 Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/0c419118 Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/0c419118 Branch: refs/heads/master Commit: 0c419118344e1492fd245cbd3427cffe0aac9cca Parents: ac80467 Author: Goldstein Lyor <l...@c-b4.com> Authored: Sun Apr 9 14:34:53 2017 +0300 Committer: Goldstein Lyor <l...@c-b4.com> Committed: Sun Apr 9 14:34:53 2017 +0300 ---------------------------------------------------------------------- .../apache/sshd/common/session/helpers/AbstractSession.java | 8 ++++++-- .../main/java/org/apache/sshd/common/util/buffer/Buffer.java | 7 ++++--- 2 files changed, 10 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/0c419118/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 49ce76b..0215d2b 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 @@ -691,7 +691,10 @@ public abstract class AbstractSession extends AbstractKexFactoryManager implemen } protected void handleDisconnect(Buffer buffer) throws Exception { - handleDisconnect(buffer.getInt(), buffer.getString(), buffer.getString(), buffer); + int code = buffer.getInt(); + String message = buffer.getString(); + String languageTag = buffer.getString(); + handleDisconnect(code, message, languageTag, buffer); } protected void handleDisconnect(int code, String msg, String lang, Buffer buffer) throws Exception { @@ -704,7 +707,8 @@ public abstract class AbstractSession extends AbstractKexFactoryManager implemen } protected void handleServiceRequest(Buffer buffer) throws Exception { - handleServiceRequest(buffer.getString(), buffer); + String serviceName = buffer.getString(); + handleServiceRequest(serviceName, buffer); } protected boolean handleServiceRequest(String serviceName, Buffer buffer) throws Exception { http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/0c419118/sshd-core/src/main/java/org/apache/sshd/common/util/buffer/Buffer.java ---------------------------------------------------------------------- diff --git a/sshd-core/src/main/java/org/apache/sshd/common/util/buffer/Buffer.java b/sshd-core/src/main/java/org/apache/sshd/common/util/buffer/Buffer.java index 74c1491..ed4b842 100644 --- a/sshd-core/src/main/java/org/apache/sshd/common/util/buffer/Buffer.java +++ b/sshd-core/src/main/java/org/apache/sshd/common/util/buffer/Buffer.java @@ -474,9 +474,10 @@ public abstract class Buffer implements Readable { return new KeyPair(pubKey, privKey); } - public void ensureAvailable(int a) throws BufferException { - if (available() < a) { - throw new BufferException("Underflow"); + public void ensureAvailable(int reqLen) throws BufferException { + int availLen = available(); + if (availLen < reqLen) { + throw new BufferException("Underflow: requested=" + reqLen + ", available=" + availLen); } }