diff --git a/bindings/C/adios2/c/adios2_c_engine.cpp b/bindings/C/adios2/c/adios2_c_engine.cpp index eddeae5190..2c3addd9a2 100644 --- a/bindings/C/adios2/c/adios2_c_engine.cpp +++ b/bindings/C/adios2/c/adios2_c_engine.cpp @@ -724,10 +724,13 @@ adios2_varinfo *adios2_inquire_blockinfo(adios2_engine *engine, memcpy(b[i].Start, minBlocksInfo->BlocksInfo[i].Start, sizeof(size_t) * minBlocksInfo->Dims); } - b[i].Count = - (size_t *)malloc(sizeof(size_t) * minBlocksInfo->Dims); - memcpy(b[i].Count, minBlocksInfo->BlocksInfo[i].Count, - sizeof(size_t) * minBlocksInfo->Dims); + if (minBlocksInfo->BlocksInfo[i].Count) + { + b[i].Count = + (size_t *)malloc(sizeof(size_t) * minBlocksInfo->Dims); + memcpy(b[i].Count, minBlocksInfo->BlocksInfo[i].Count, + sizeof(size_t) * minBlocksInfo->Dims); + } } if (minBlocksInfo->IsValue) { diff --git a/source/adios2/toolkit/format/bp5/BP5Deserializer.cpp b/source/adios2/toolkit/format/bp5/BP5Deserializer.cpp index 5a0f4fc7d9..5c6c2b1514 100644 --- a/source/adios2/toolkit/format/bp5/BP5Deserializer.cpp +++ b/source/adios2/toolkit/format/bp5/BP5Deserializer.cpp @@ -1531,6 +1531,8 @@ MinVarInfo *BP5Deserializer::MinBlocksInfo(const VariableBase &Var, size_t Step) Blk.WriterID = WriterRank; Blk.BlockID = Id++; Blk.BufferP = writer_meta_base; + Blk.Start = NULL; + Blk.Count = NULL; if (VarRec->OrigShapeID == ShapeID::LocalValue) { Blk.Count = (size_t *)1;