From ebf8e9cb9961c8310418ddcb7e6cee64f750cf8d Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Wed, 6 Mar 2019 23:18:11 +0100 Subject: [PATCH] Fix mismatched alloc/free. --- src/smpi/colls/reduce/reduce-NTSL.cpp | 2 +- src/smpi/colls/reduce/reduce-mvapich-knomial.cpp | 4 ++-- src/smpi/colls/reduce/reduce-ompi.cpp | 6 +++--- src/smpi/colls/scatter/scatter-ompi.cpp | 2 +- src/smpi/colls/smpi_default_selector.cpp | 5 +---- 5 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/smpi/colls/reduce/reduce-NTSL.cpp b/src/smpi/colls/reduce/reduce-NTSL.cpp index 6d3dfa6ebb..3f48c44862 100644 --- a/src/smpi/colls/reduce/reduce-NTSL.cpp +++ b/src/smpi/colls/reduce/reduce-NTSL.cpp @@ -149,7 +149,7 @@ int Coll_reduce_NTSL::reduce(void *buf, void *rbuf, int count, comm); } - free(tmp_buf); + smpi_free_tmp_buffer(tmp_buf); return MPI_SUCCESS; } } diff --git a/src/smpi/colls/reduce/reduce-mvapich-knomial.cpp b/src/smpi/colls/reduce/reduce-mvapich-knomial.cpp index 1700f75baa..13454c234d 100644 --- a/src/smpi/colls/reduce/reduce-mvapich-knomial.cpp +++ b/src/smpi/colls/reduce/reduce-mvapich-knomial.cpp @@ -92,7 +92,7 @@ static int MPIR_Reduce_knomial_trace(int root, int reduce_knomial_factor, /* Finally, fill up the src array */ if(recv_iter > 0) { - knomial_reduce_src_array = static_cast(smpi_get_tmp_sendbuffer(sizeof(int)*recv_iter)); + knomial_reduce_src_array = new int[recv_iter]; } mask = orig_mask; @@ -211,7 +211,7 @@ int Coll_reduce_mvapich2_knomial::reduce ( } if(src_array != NULL) { - xbt_free(src_array); + delete[] src_array; } if(rank != root) { diff --git a/src/smpi/colls/reduce/reduce-ompi.cpp b/src/smpi/colls/reduce/reduce-ompi.cpp index be386b6873..d6f2a85335 100644 --- a/src/smpi/colls/reduce/reduce-ompi.cpp +++ b/src/smpi/colls/reduce/reduce-ompi.cpp @@ -309,9 +309,9 @@ int smpi_coll_tuned_ompi_reduce_generic( void* sendbuf, void* recvbuf, int origi error_hndl: /* error handler */ XBT_DEBUG("ERROR_HNDL: node %d file %s line %d error %d\n", rank, __FILE__, line, ret ); - if( inbuf_free[0] != NULL ) free(inbuf_free[0]); - if( inbuf_free[1] != NULL ) free(inbuf_free[1]); - if( accumbuf_free != NULL ) free(accumbuf); + smpi_free_tmp_buffer(inbuf_free[0]); + smpi_free_tmp_buffer(inbuf_free[1]); + smpi_free_tmp_buffer(accumbuf); return ret; } diff --git a/src/smpi/colls/scatter/scatter-ompi.cpp b/src/smpi/colls/scatter/scatter-ompi.cpp index 1d5255c8bb..c4c41b069c 100644 --- a/src/smpi/colls/scatter/scatter-ompi.cpp +++ b/src/smpi/colls/scatter/scatter-ompi.cpp @@ -165,7 +165,7 @@ int Coll_scatter_ompi_binomial::scatter(void* sbuf, int scount, MPI_Datatype sdt err_hndl: if (NULL != tempbuf) - free(tempbuf); + smpi_free_tmp_buffer(tempbuf); XBT_DEBUG("%s:%4d\tError occurred %d, rank %2d", __FILE__, line, err, rank); return err; diff --git a/src/smpi/colls/smpi_default_selector.cpp b/src/smpi/colls/smpi_default_selector.cpp index 7b6899e25e..d6126c7d69 100644 --- a/src/smpi/colls/smpi_default_selector.cpp +++ b/src/smpi/colls/smpi_default_selector.cpp @@ -237,10 +237,7 @@ int Coll_reduce_default::reduce(void *sendbuf, void *recvbuf, int count, MPI_Dat int index = 0; for (int src = 0; src < size; src++) { if (src != root) { - if (not smpi_process()->replaying()) - tmpbufs[index] = xbt_malloc(count * dataext); - else - tmpbufs[index] = smpi_get_tmp_sendbuffer(count * dataext); + tmpbufs[index] = smpi_get_tmp_sendbuffer(count * dataext); requests[index] = Request::irecv_init(tmpbufs[index], count, datatype, src, system_tag, comm); index++; -- 2.20.1