From 0d8026e21b557c69dfdb23f8b6fddb6d277e28df Mon Sep 17 00:00:00 2001 From: Gabriel Corona Date: Mon, 18 Jul 2016 14:32:13 +0200 Subject: [PATCH 1/1] [mc] Avoid extra memory allocation and fix off-by-one buffer overflow --- src/mc/AddressSpace.hpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/mc/AddressSpace.hpp b/src/mc/AddressSpace.hpp index 5c4f51529d..1fd9e4966d 100644 --- a/src/mc/AddressSpace.hpp +++ b/src/mc/AddressSpace.hpp @@ -160,11 +160,10 @@ public: /** Read a string of known size */ std::string read_string(RemotePtr address, std::size_t len) const { - // TODO, use std::vector with .data() in C++17 to avoid useless copies - std::vector buffer(len); - buffer[len] = '\0'; - this->read_bytes(buffer.data(), len, address); - return std::string(buffer.data(), buffer.size()); + std::string res; + res.resize(len); + this->read_bytes(&res[0], len, address); + return res; } }; -- 2.20.1