From 552833213c979e9df3e03cc6ea3a2ec1f3847121 Mon Sep 17 00:00:00 2001 From: Dana Robinson <43805+derobins@users.noreply.github.com> Date: Thu, 30 Jun 2022 07:47:34 -0700 Subject: Fix for gcc-12 warning about string truncation in H5Opline.c (#1835) --- src/H5Opline.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/H5Opline.c b/src/H5Opline.c index 7f73801..5618dce 100644 --- a/src/H5Opline.c +++ b/src/H5Opline.c @@ -639,7 +639,6 @@ static herr_t H5O__pline_debug(H5F_t H5_ATTR_UNUSED *f, const void *mesg, FILE *stream, int indent, int fwidth) { const H5O_pline_t *pline = (const H5O_pline_t *)mesg; - size_t i, j; FUNC_ENTER_PACKAGE_NOERR @@ -654,10 +653,15 @@ H5O__pline_debug(H5F_t H5_ATTR_UNUSED *f, const void *mesg, FILE *stream, int in pline->nalloc); /* Loop over all the filters */ - for (i = 0; i < pline->nused; i++) { - char name[32]; + for (size_t i = 0; i < pline->nused; i++) { + /* 19 characters for text + 20 characters for largest 64-bit size_t + + * terminal NUL = 40 characters. + */ + char name[64]; + HDmemset(name, 0, 64); HDsnprintf(name, sizeof(name), "Filter at position %zu", i); + HDfprintf(stream, "%*s%-*s\n", indent, "", fwidth, name); HDfprintf(stream, "%*s%-*s 0x%04x\n", indent + 3, "", MAX(0, fwidth - 3), "Filter identification:", (unsigned)(pline->filter[i].id)); @@ -672,14 +676,14 @@ H5O__pline_debug(H5F_t H5_ATTR_UNUSED *f, const void *mesg, FILE *stream, int in "Num CD values:", pline->filter[i].cd_nelmts); /* Filter parameters */ - for (j = 0; j < pline->filter[i].cd_nelmts; j++) { + for (size_t j = 0; j < pline->filter[i].cd_nelmts; j++) { char field_name[32]; HDsnprintf(field_name, sizeof(field_name), "CD value %lu", (unsigned long)j); HDfprintf(stream, "%*s%-*s %u\n", indent + 6, "", MAX(0, fwidth - 6), field_name, pline->filter[i].cd_values[j]); - } /* end for */ - } /* end for */ + } + } FUNC_LEAVE_NOAPI(SUCCEED) } /* end H5O__pline_debug() */ -- cgit v0.12