From 4c4882230807c5244b2fffe1b24a535c3289b713 Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Thu, 26 Nov 2020 12:47:27 +0100 Subject: [PATCH] Fix use-after-free. --- src/smpi/mpi/smpi_datatype.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/smpi/mpi/smpi_datatype.cpp b/src/smpi/mpi/smpi_datatype.cpp index 0dcfaefa25..6e9fe3d6b5 100644 --- a/src/smpi/mpi/smpi_datatype.cpp +++ b/src/smpi/mpi/smpi_datatype.cpp @@ -211,13 +211,13 @@ void Datatype::unref(MPI_Datatype datatype) if (datatype->refcount_ > 0) datatype->refcount_--; - if (datatype->refcount_ == 0 && not(datatype->flags_ & DT_FLAG_PREDEFINED)) - delete datatype; - #if SIMGRID_HAVE_MC if(MC_is_active()) MC_ignore(&(datatype->refcount_), sizeof(datatype->refcount_)); #endif + + if (datatype->refcount_ == 0 && not(datatype->flags_ & DT_FLAG_PREDEFINED)) + delete datatype; } void Datatype::commit() -- 2.20.1