summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorjhendersonHDF <jhenderson@hdfgroup.org>2023-08-02 04:14:32 (GMT)
committerGitHub <noreply@github.com>2023-08-02 04:14:32 (GMT)
commit74352dfda887c2ffe336bbcea19ee978dcd2ce8c (patch)
treea92a969252db4b36819d2d42a3efa91a6d524fbc /src
parenta78863a82c789ea123a21d568a26f873edbe6e7e (diff)
downloadhdf5-74352dfda887c2ffe336bbcea19ee978dcd2ce8c.zip
hdf5-74352dfda887c2ffe336bbcea19ee978dcd2ce8c.tar.gz
hdf5-74352dfda887c2ffe336bbcea19ee978dcd2ce8c.tar.bz2
Fix H5Otoken_to_str call in h5dump and other minor cleanup (#3314)
Diffstat (limited to 'src')
-rw-r--r--src/H5Dint.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/H5Dint.c b/src/H5Dint.c
index 9c74d45..301e803 100644
--- a/src/H5Dint.c
+++ b/src/H5Dint.c
@@ -3540,11 +3540,11 @@ done:
hid_t
H5D_get_create_plist(const H5D_t *dset)
{
- H5P_genplist_t *dcpl_plist; /* Dataset's DCPL */
- H5P_genplist_t *new_plist; /* Copy of dataset's DCPL */
- H5O_layout_t copied_layout; /* Layout to tweak */
- H5O_fill_t copied_fill; /* Fill value to tweak */
- H5O_efl_t copied_efl; /* External file list to tweak */
+ H5P_genplist_t *dcpl_plist; /* Dataset's DCPL */
+ H5P_genplist_t *new_plist; /* Copy of dataset's DCPL */
+ H5O_layout_t copied_layout; /* Layout to tweak */
+ H5O_fill_t copied_fill = {0}; /* Fill value to tweak */
+ H5O_efl_t copied_efl; /* External file list to tweak */
hid_t new_dcpl_id = FAIL;
hid_t ret_value = H5I_INVALID_HID; /* Return value */
@@ -3697,11 +3697,15 @@ H5D_get_create_plist(const H5D_t *dset)
ret_value = new_dcpl_id;
done:
- if (ret_value < 0)
+ if (ret_value < 0) {
if (new_dcpl_id > 0)
if (H5I_dec_app_ref(new_dcpl_id) < 0)
HDONE_ERROR(H5E_DATASET, H5E_CANTDEC, FAIL, "unable to close temporary object");
+ if (copied_fill.type && (H5T_close_real(copied_fill.type) < 0))
+ HDONE_ERROR(H5E_DATASET, H5E_CANTFREE, FAIL, "Can't free temporary datatype");
+ }
+
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5D_get_create_plist() */