From 2a63478c4f47a55dc90ca95d19bf40bead803ea0 Mon Sep 17 00:00:00 2001
From: Bill King <bill.king@nokia.com>
Date: Fri, 11 Jun 2010 13:23:17 +1000
Subject: [PATCH] Coverity security fixes

---
 src/libs/3rdparty/net7ssh/src/ne7ssh.cpp      |  5 +++--
 .../3rdparty/net7ssh/src/ne7ssh_string.cpp    | 20 +++++++++++--------
 2 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/src/libs/3rdparty/net7ssh/src/ne7ssh.cpp b/src/libs/3rdparty/net7ssh/src/ne7ssh.cpp
index fee569089a3..21f5759e80c 100644
--- a/src/libs/3rdparty/net7ssh/src/ne7ssh.cpp
+++ b/src/libs/3rdparty/net7ssh/src/ne7ssh.cpp
@@ -656,8 +656,9 @@ char *ne7ssh::readAndReset(int channel, char *(*alloc)(size_t))
       data = connections[i]->getReceived();
       if (data.size())
       {
-        buffer = alloc(connections[i]->getReceived().size());
-        strcpy(buffer, reinterpret_cast<char*>(connections[i]->getReceived().begin()));
+        Botan::SecureVector<Botan::byte>& received=connections[i]->getReceived();
+        buffer = alloc(received.size());
+        strncpy(buffer, reinterpret_cast<char*>(received.begin()), received.size());
         connections[i]->resetReceiveBuffer();
       }
       break;
diff --git a/src/libs/3rdparty/net7ssh/src/ne7ssh_string.cpp b/src/libs/3rdparty/net7ssh/src/ne7ssh_string.cpp
index a5982d9a5bb..ef64f143206 100644
--- a/src/libs/3rdparty/net7ssh/src/ne7ssh_string.cpp
+++ b/src/libs/3rdparty/net7ssh/src/ne7ssh_string.cpp
@@ -69,14 +69,18 @@ bool ne7ssh_string::addFile (const char* filename)
 
   fseek (FI, 0L, SEEK_END);
   size = ftell (FI);
-  rewind (FI);
-
-  data = (Botan::byte*) malloc (size);
-  fread (data, size, 1, FI);
-  fclose (FI);
-  buffer.append (data, (u32bit) size);
-  free (data);
-  return true;
+  if(size > 0) {
+      rewind (FI);
+
+      data = (Botan::byte*) malloc (size);
+      fread (data, size, 1, FI);
+      fclose (FI);
+      buffer.append (data, (u32bit) size);
+      free (data);
+      return true;
+  }
+  fclose(FI);
+  return false;
 }
 
 void ne7ssh_string::addBigInt (const Botan::BigInt& bn)
-- 
GitLab