diff --git a/src/libs/3rdparty/net7ssh/src/ne7ssh_sftp.cpp b/src/libs/3rdparty/net7ssh/src/ne7ssh_sftp.cpp index 0663301200bd112aca591445cb9f361581521bf9..61d325634eb0243251c9aeb2da2808ef56c882be 100644 --- a/src/libs/3rdparty/net7ssh/src/ne7ssh_sftp.cpp +++ b/src/libs/3rdparty/net7ssh/src/ne7ssh_sftp.cpp @@ -108,10 +108,11 @@ bool Ne7sshSftp::handleData (Botan::SecureVector<Botan::byte>& packet) commBuffer.addVector (sftpBuffer); mainBuffer.addVector (sftpBuffer); - len = mainBuffer.getInt(); + if (mainBuffer.length() < sizeof(uint32) + || mainBuffer.getInt() > mainBuffer.length()) + return true; - if (len > mainBuffer.length()) return true; - else commBuffer.clear(); + commBuffer.clear(); _cmd = mainBuffer.getByte();