From: Arnaud Giersch Date: Wed, 6 Mar 2019 22:18:11 +0000 (+0100) Subject: Fix mismatched alloc/free. X-Git-Tag: v3_22~142 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/ebf8e9cb9961c8310418ddcb7e6cee64f750cf8d?hp=4c5b0cb8d6a49c0a868925de9678257a3cd0f041;ds=sidebyside Fix mismatched alloc/free. --- 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++;