From: Arnaud Giersch Date: Sat, 17 Oct 2020 20:51:07 +0000 (+0200) Subject: Avoid buffer overflow. X-Git-Tag: v3.26~277 X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/727e7f4382c295572e3836594af64b4bad3dd8d4 Avoid buffer overflow. --- diff --git a/src/smpi/internals/smpi_memory.cpp b/src/smpi/internals/smpi_memory.cpp index 394dbb4ee0..501f015751 100644 --- a/src/smpi/internals/smpi_memory.cpp +++ b/src/smpi/internals/smpi_memory.cpp @@ -55,10 +55,10 @@ void smpi_prepare_global_memory_segment() static void smpi_get_executable_global_size() { - char buffer[PATH_MAX]; - const char* full_name = realpath(simgrid::xbt::binary_name.c_str(), buffer); - xbt_assert(full_name != nullptr, "Could not resolve real path of binary file '%s'", - simgrid::xbt::binary_name.c_str()); + char* buffer = realpath(simgrid::xbt::binary_name.c_str(), nullptr); + xbt_assert(buffer != nullptr, "Could not resolve real path of binary file '%s'", simgrid::xbt::binary_name.c_str()); + std::string full_name = buffer; + free(buffer); std::vector map = simgrid::xbt::get_memory_map(getpid()); for (auto i = map.begin(); i != map.end() ; ++i) {