Author: gnodet
Date: Wed Apr 28 19:16:05 2010
New Revision: 939056

URL: http://svn.apache.org/viewvc?rev=939056&view=rev
Log:
SSHD-80: Exchange hash calculation problem

Modified:
    
mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/common/session/AbstractSession.java

Modified: 
mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/common/session/AbstractSession.java
URL: 
http://svn.apache.org/viewvc/mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/common/session/AbstractSession.java?rev=939056&r1=939055&r2=939056&view=diff
==============================================================================
--- 
mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/common/session/AbstractSession.java
 (original)
+++ 
mina/sshd/trunk/sshd-core/src/main/java/org/apache/sshd/common/session/AbstractSession.java
 Wed Apr 28 19:16:05 2010
@@ -660,6 +660,7 @@ public abstract class AbstractSession im
      */
     protected byte[] receiveKexInit(Buffer buffer, String[] proposal) {
         // Recreate the packet payload which will be needed at a later time
+        int size = 22;
         byte[] d = buffer.array();
         byte[] data = new byte[buffer.available() + 1];
         data[0] = SshConstants.Message.SSH_MSG_KEXINIT.toByte();
@@ -668,13 +669,17 @@ public abstract class AbstractSession im
         buffer.rpos(buffer.rpos() + 16);
         // Read proposal
         for (int i = 0; i < proposal.length; i++) {
+            size += 4;
             proposal[i] = buffer.getString();
+            size += proposal[i].length();
         }
         // Skip 5 bytes
         buffer.getByte();
         buffer.getInt();
         // Return data
-        return data;
+        byte[] dataShrinked = new byte[size];
+        System.arraycopy(data, 0, dataShrinked, 0, size);
+        return dataShrinked;
     }
 
     /**


Reply via email to