From baa4095049e892f4f09a4d67e698fdc7dbcf04ac Mon Sep 17 00:00:00 2001 From: degomme Date: Wed, 15 Feb 2017 02:05:35 +0100 Subject: [PATCH] This computation was incorrect and actually prevented this case to happen. This may fix the last bugs in privatization on some systems --- src/smpi/smpi_memory.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/smpi/smpi_memory.cpp b/src/smpi/smpi_memory.cpp index ec7ee46b18..934885afa7 100644 --- a/src/smpi/smpi_memory.cpp +++ b/src/smpi/smpi_memory.cpp @@ -48,8 +48,8 @@ void smpi_get_executable_global_size() following the rw- area is the end of the data segment. It would be better to check with the size of the data segment. */ if (i != map.end() && i->pathname.empty() && (i->prot & PROT_RWX) == PROT_RW - && i->start_addr == (std::uint64_t) smpi_start_data_exe + smpi_size_data_exe) { - smpi_size_data_exe = i->end_addr - (std::uint64_t) smpi_start_data_exe; + && (char*)i->start_addr == smpi_start_data_exe + smpi_size_data_exe) { + smpi_size_data_exe = (char*)i->end_addr - smpi_start_data_exe; } return; } -- 2.20.1