From fc91e8856f9babe0d2533a952209473be11b4ccd Mon Sep 17 00:00:00 2001 From: Allen Byrne <50328838+byrnHDF@users.noreply.github.com> Date: Fri, 7 Apr 2023 12:35:51 -0500 Subject: Fix #2598 sanitize leak (#2660) --- release_docs/RELEASE.txt | 7 ++++++- tools/lib/h5trav.c | 8 ++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index e02a58d..be040f4 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -237,7 +237,12 @@ Bug Fixes since HDF5-1.13.3 release Tools ----- - - + - In the tools traverse function - an error in either visit call + will bypass the cleanup of the local data variables. + + Replaced the H5TOOLS_GOTO_ERROR with just H5TOOLS_ERROR. + + (ADB - 2023/04/06 GH-2598) Performance diff --git a/tools/lib/h5trav.c b/tools/lib/h5trav.c index 599cb22..564dcba 100644 --- a/tools/lib/h5trav.c +++ b/tools/lib/h5trav.c @@ -144,9 +144,9 @@ trav_token_visited(hid_t loc_id, trav_addr_t *visited, H5O_token_t *token) size_t u; /* Local index variable */ int token_cmp; - /* Look for address */ + /* Look for path associated with token */ for (u = 0; u < visited->nused; u++) { - /* Check for address already in array */ + /* Check for token already in array */ if (H5Otoken_cmp(loc_id, &visited->objs[u].token, token, &token_cmp) < 0) return NULL; if (!token_cmp) @@ -281,13 +281,13 @@ traverse(hid_t file_id, const char *grp_name, hbool_t visit_start, hbool_t recur /* Visit all links in group, recursively */ if (H5Lvisit_by_name2(file_id, grp_name, trav_index_by, trav_index_order, traverse_cb, &udata, H5P_DEFAULT) < 0) - H5TOOLS_GOTO_ERROR((-1), "H5Lvisit_by_name failed"); + H5TOOLS_ERROR((-1), "H5Lvisit_by_name failed"); } /* end if */ else { /* Iterate over links in group */ if (H5Literate_by_name2(file_id, grp_name, trav_index_by, trav_index_order, NULL, traverse_cb, &udata, H5P_DEFAULT) < 0) - H5TOOLS_GOTO_ERROR((-1), "H5Literate_by_name failed"); + H5TOOLS_ERROR((-1), "H5Literate_by_name failed"); } /* end else */ /* Free visited addresses table */ -- cgit v0.12