diff --git a/src/MPIIO/dump_custom_mpiio.cpp b/src/MPIIO/dump_custom_mpiio.cpp index f07c1e19d6..678ee3dadd 100644 --- a/src/MPIIO/dump_custom_mpiio.cpp +++ b/src/MPIIO/dump_custom_mpiio.cpp @@ -231,10 +231,12 @@ void DumpCustomMPIIO::init_style() // lo priority = line, medium priority = int/float, hi priority = column auto words = utils::split_words(format); - if ((int) words.size() < nfield) error->all(FLERR, "Dump_modify format line is too short"); + if ((int) words.size() < nfield) + error->all(FLERR, "Dump_modify format line is too short: {}", format); int i = 0; for (const auto &word : words) { + if (i >= nfield) break; delete[] vformat[i]; if (format_column_user[i]) diff --git a/src/dump_custom.cpp b/src/dump_custom.cpp index 9389839aca..cd85671578 100644 --- a/src/dump_custom.cpp +++ b/src/dump_custom.cpp @@ -262,10 +262,11 @@ void DumpCustom::init_style() auto words = utils::split_words(format); if ((int) words.size() < nfield) - error->all(FLERR,"Dump_modify format line is too short"); + error->all(FLERR,"Dump_modify format line is too short: {}", format); int i=0; for (const auto &word : words) { + if (i >= nfield) break; delete[] vformat[i]; if (format_column_user[i]) diff --git a/src/dump_local.cpp b/src/dump_local.cpp index 5fad243e74..bf26890b05 100644 --- a/src/dump_local.cpp +++ b/src/dump_local.cpp @@ -185,10 +185,11 @@ void DumpLocal::init_style() auto words = utils::split_words(format); if ((int) words.size() < size_one) - error->all(FLERR,"Dump_modify format line is too short"); + error->all(FLERR,"Dump_modify format line is too short: {}", format); int i=0; for (const auto &word : words) { + if (i >= size_one) break; delete[] vformat[i]; if (format_column_user[i])