diff --git a/src/libs/3rdparty/net7ssh/src/ne7ssh.cpp b/src/libs/3rdparty/net7ssh/src/ne7ssh.cpp index fee569089a397026a18b31ddb45a3aeb06beb638..21f5759e80c38331400af487d924213678c476ef 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 a5982d9a5bbc8e6fd1852d2ae550c4cd370fd374..ef64f1432063a6afcb7706b0fa2b5a516fe7ca97 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)