From b0614931f4a7b407c8d2870d84fe93977dcdfc07 Mon Sep 17 00:00:00 2001 From: Gleb Natapov Date: Mon, 3 Sep 2007 10:56:55 +0000 Subject: [PATCH] Remove mpool_tree_item from the mpool_tree before unregistering/freeing memory. Otherwise a race exists if another thread allocates already freed memory which is not removed from the mpool_tree yet. This commit was SVN r16038. --- ompi/mca/mpool/base/mpool_base_alloc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ompi/mca/mpool/base/mpool_base_alloc.c b/ompi/mca/mpool/base/mpool_base_alloc.c index 82321c66fc..04e42c00e2 100644 --- a/ompi/mca/mpool/base/mpool_base_alloc.c +++ b/ompi/mca/mpool/base/mpool_base_alloc.c @@ -290,8 +290,9 @@ int mca_mpool_base_free(void *base) return OMPI_SUCCESS; } - unregister_tree_item(mpool_tree_item); rc = mca_mpool_base_tree_delete(mpool_tree_item); + if(OMPI_SUCCESS == rc) + unregister_tree_item(mpool_tree_item); return rc; }