From d8fbc56f780109e59184804c0c2704475d4ef41b Mon Sep 17 00:00:00 2001 From: Dana Robinson <43805+derobins@users.noreply.github.com> Date: Wed, 27 Sep 2023 07:56:25 -0700 Subject: Fix potential uninitialized variable (#3602) Moves a union initialization up a bit so it's performed before code that can jump to the cleanup target, where file descriptors could be checked without being initialized. This could only happen in test code and only in an out-of-memory situation. Fixes Coverity 1542254 --- tools/src/h5perf/sio_engine.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/src/h5perf/sio_engine.c b/tools/src/h5perf/sio_engine.c index 700416d..2363f6a 100644 --- a/tools/src/h5perf/sio_engine.c +++ b/tools/src/h5perf/sio_engine.c @@ -139,9 +139,7 @@ do_sio(parameters param, results *res) /* IO type */ iot = param.io_type; - if (NULL == (fname = calloc(FILENAME_MAX, sizeof(char)))) - GOTOERROR(FAIL); - + /* MUST initialize fd early since we check its file IDs in cleanup code */ switch (iot) { case POSIXIO: fd.posixfd = -1; @@ -157,6 +155,9 @@ do_sio(parameters param, results *res) GOTOERROR(FAIL); } + if (NULL == (fname = calloc(FILENAME_MAX, sizeof(char)))) + GOTOERROR(FAIL); + linear_buf_size = 1; for (i = 0; i < param.rank; i++) { -- cgit v0.12