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);
         }
     }
 

Reply via email to