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;
}
/**