From 727e7f4382c295572e3836594af64b4bad3dd8d4 Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Sat, 17 Oct 2020 22:51:07 +0200 Subject: [PATCH] Avoid buffer overflow. --- src/smpi/internals/smpi_memory.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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) { -- 2.20.1