This is an automated email from the ASF dual-hosted git repository.
gnodet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mina-sshd.git
The following commit(s) were added to refs/heads/master by this push:
new cc0d1c6 [SSHD-979] Fix issue where the buffer should not be modified
after being submitted to writePacket
cc0d1c6 is described below
commit cc0d1c6cbd562a485b383a4c3f9ef4ecd82ebb7c
Author: Guillaume Nodet <[email protected]>
AuthorDate: Wed Apr 22 10:20:06 2020 +0200
[SSHD-979] Fix issue where the buffer should not be modified after being
submitted to writePacket
---
.../java/org/apache/sshd/common/session/helpers/AbstractSession.java | 1 -
.../org/apache/sshd/client/subsystem/sftp/impl/DefaultSftpClient.java | 4 +++-
2 files changed, 3 insertions(+), 2 deletions(-)
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 e8eda37..47a56b9 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
@@ -955,7 +955,6 @@ public abstract class AbstractSession extends SessionHelper
{
Buffer packet = resolveOutputPacket(buffer);
IoSession networkSession = getIoSession();
IoWriteFuture future = networkSession.writePacket(packet);
- buffer.rpos(buffer.wpos());
return future;
}
}
diff --git
a/sshd-sftp/src/main/java/org/apache/sshd/client/subsystem/sftp/impl/DefaultSftpClient.java
b/sshd-sftp/src/main/java/org/apache/sshd/client/subsystem/sftp/impl/DefaultSftpClient.java
index 5ef0e18..2c13f5b 100644
---
a/sshd-sftp/src/main/java/org/apache/sshd/client/subsystem/sftp/impl/DefaultSftpClient.java
+++
b/sshd-sftp/src/main/java/org/apache/sshd/client/subsystem/sftp/impl/DefaultSftpClient.java
@@ -529,7 +529,9 @@ public class DefaultSftpClient extends AbstractSftpClient {
buffer.putInt(channel.getRecipient());
buffer.putInt(length);
buffer.wpos(wpos);
- return buffer;
+ Buffer buf = new ByteArrayBuffer(buffer.array(),
buffer.rpos(), buffer.available());
+ buffer.rpos(buffer.wpos());
+ return buf;
} else {
return super.createSendBuffer(buffer, channel, length);
}