Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
do not allocate 0 sized buffers which won't be copied/freed after
authorAugustin Degomme <degomme@idpann.imag.fr>
Tue, 9 Apr 2013 09:23:28 +0000 (11:23 +0200)
committerAugustin Degomme <degomme@idpann.imag.fr>
Tue, 9 Apr 2013 10:00:52 +0000 (12:00 +0200)
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;
   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);
     }
     if (flags & SEND) {
       subtype->serialize(old_buf, buf, count, datatype->substruct);
     }