Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
do not allocate 0 sized buffers which won't be copied/freed after
[simgrid.git] / src / smpi / smpi_base.c
index 6ffe7f6..f5a2192 100644 (file)
@@ -197,7 +197,7 @@ static MPI_Request build_request(void *buf, int count,
   if(datatype->has_subtype == 1){
     // This part handles the problem of non-contiguous memory
     old_buf = buf;
-    buf = xbt_malloc(count*smpi_datatype_size(datatype));
+    buf = count==0 ? NULL : xbt_malloc(count*smpi_datatype_size(datatype));
     if (flags & SEND) {
       subtype->serialize(old_buf, buf, count, datatype->substruct);
     }