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