From e6db9b25d3753a1e39cad02f3bc0451da3640d1f Mon Sep 17 00:00:00 2001 From: jhendersonHDF Date: Mon, 24 Apr 2023 10:21:12 -0500 Subject: Fix ROS3 VFD anonymous credential usage with h5dump and h5ls (#2798) --- tools/src/h5dump/h5dump.c | 13 ++++++++++++- tools/src/h5ls/h5ls.c | 18 +++++++++++++++--- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/tools/src/h5dump/h5dump.c b/tools/src/h5dump/h5dump.c index 6c1556a..2a5eeb7 100644 --- a/tools/src/h5dump/h5dump.c +++ b/tools/src/h5dump/h5dump.c @@ -862,8 +862,19 @@ parse_start: case 'f': vfd_info_g.type = VFD_BY_NAME; vfd_info_g.u.name = H5_optarg; - vfd_info_g.info = NULL; use_custom_vfd_g = TRUE; + +#ifdef H5_HAVE_ROS3_VFD + if (0 == HDstrcmp(vfd_info_g.u.name, drivernames[ROS3_VFD_IDX])) + if (!vfd_info_g.info) + vfd_info_g.info = &ros3_fa_g; +#endif +#ifdef H5_HAVE_LIBHDFS + if (0 == HDstrcmp(vfd_info_g.u.name, drivernames[HDFS_VFD_IDX])) + if (!vfd_info_g.info) + vfd_info_g.info = &hdfs_fa_g; +#endif + break; case 'g': dump_opts.display_all = 0; diff --git a/tools/src/h5ls/h5ls.c b/tools/src/h5ls/h5ls.c index 4e7298c..5d9e184 100644 --- a/tools/src/h5ls/h5ls.c +++ b/tools/src/h5ls/h5ls.c @@ -2651,8 +2651,8 @@ main(int argc, char *argv[]) hid_t fapl_id = H5P_DEFAULT; hbool_t custom_vol_fapl = FALSE; hbool_t custom_vfd_fapl = FALSE; - h5tools_vol_info_t vol_info; - h5tools_vfd_info_t vfd_info; + h5tools_vol_info_t vol_info = {0}; + h5tools_vfd_info_t vfd_info = {0}; #ifdef H5_HAVE_ROS3_VFD /* Default "anonymous" S3 configuration */ @@ -2763,7 +2763,6 @@ main(int argc, char *argv[]) else if (!HDstrncmp(argv[argno], "--vfd=", (size_t)6)) { vfd_info.type = VFD_BY_NAME; vfd_info.u.name = argv[argno] + 6; - vfd_info.info = NULL; custom_vfd_fapl = TRUE; } else if (!HDstrncmp(argv[argno], "--vfd-value=", (size_t)12)) { @@ -2980,6 +2979,19 @@ main(int argc, char *argv[]) /* Setup a custom fapl for file accesses */ if (custom_vol_fapl || custom_vfd_fapl) { +#ifdef H5_HAVE_ROS3_VFD + if (custom_vfd_fapl && (0 == HDstrcmp(vfd_info.u.name, drivernames[ROS3_VFD_IDX]))) { + if (!vfd_info.info) + vfd_info.info = &ros3_fa; + } +#endif +#ifdef H5_HAVE_LIBHDFS + if (custom_vfd_fapl && (0 == HDstrcmp(vfd_info.u.name, drivernames[HDFS_VFD_IDX]))) { + if (!vfd_info.info) + vfd_info.info = &hdfs_fa; + } +#endif + if ((fapl_id = h5tools_get_fapl(H5P_DEFAULT, custom_vol_fapl ? &vol_info : NULL, custom_vfd_fapl ? &vfd_info : NULL)) < 0) { error_msg("failed to setup file access property list (fapl) for file\n"); -- cgit v0.12