diff options
author | Binh-Minh Ribler <bmribler@hdfgroup.org> | 2020-10-26 13:36:27 (GMT) |
---|---|---|
committer | Binh-Minh Ribler <bmribler@hdfgroup.org> | 2020-10-26 13:36:27 (GMT) |
commit | 7bfa10018ecf5efe54b4a699bb684d31468c8b42 (patch) | |
tree | 46ae17c8595a0f1ba500b48ec760eac0e6f78bb5 /src/H5Pocpl.c | |
parent | 58d8eae182ac764ef15c3ed040a12a96aa4d16f0 (diff) | |
download | hdf5-7bfa10018ecf5efe54b4a699bb684d31468c8b42.zip hdf5-7bfa10018ecf5efe54b4a699bb684d31468c8b42.tar.gz hdf5-7bfa10018ecf5efe54b4a699bb684d31468c8b42.tar.bz2 |
Fix HDFFV-10590
Description
This is to fix the CVE issue CVE-2018-17432.
h5repack produced a segfault on a corrupted file. This fix modified the
dataspace encode and decode functions per Quincey's suggestion to prevent
the segfault. h5repack only failed for the corrupted file now.
Platforms tested:
Linux/64 (jelly)
Diffstat (limited to 'src/H5Pocpl.c')
-rw-r--r-- | src/H5Pocpl.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/H5Pocpl.c b/src/H5Pocpl.c index bd6be75..b7312f2 100644 --- a/src/H5Pocpl.c +++ b/src/H5Pocpl.c @@ -807,7 +807,8 @@ H5Pget_filter2(hid_t plist_id, unsigned idx, unsigned int *flags /*out*/, size_t H5Z_filter_t ret_value; /* return value */ FUNC_ENTER_API(H5Z_FILTER_ERROR) - H5TRACE8("Zf", "iIux*zxzxx", plist_id, idx, flags, cd_nelmts, cd_values, namelen, name, filter_config); + H5TRACE8("Zf", "iIux*zxzxx", plist_id, idx, flags, cd_nelmts, cd_values, + namelen, name, filter_config); /* Check args */ if (cd_nelmts || cd_values) { @@ -937,7 +938,8 @@ H5Pget_filter_by_id2(hid_t plist_id, H5Z_filter_t id, unsigned int *flags /*out* herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_API(FAIL) - H5TRACE8("e", "iZfx*zxzx*Iu", plist_id, id, flags, cd_nelmts, cd_values, namelen, name, filter_config); + H5TRACE8("e", "iZfx*zxzx*Iu", plist_id, id, flags, cd_nelmts, cd_values, + namelen, name, filter_config); /* Check args */ if (cd_nelmts || cd_values) { @@ -1755,7 +1757,8 @@ H5Pget_filter1(hid_t plist_id, unsigned idx, unsigned int *flags /*out*/, size_t H5Z_filter_t ret_value; /* return value */ FUNC_ENTER_API(H5Z_FILTER_ERROR) - H5TRACE7("Zf", "iIux*zxzx", plist_id, idx, flags, cd_nelmts, cd_values, namelen, name); + H5TRACE7("Zf", "iIux*zxzx", plist_id, idx, flags, cd_nelmts, cd_values, namelen, + name); /* Check args */ if (cd_nelmts || cd_values) { @@ -1835,7 +1838,8 @@ H5Pget_filter_by_id1(hid_t plist_id, H5Z_filter_t id, unsigned int *flags /*out* herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_API(FAIL) - H5TRACE7("e", "iZfx*zxzx", plist_id, id, flags, cd_nelmts, cd_values, namelen, name); + H5TRACE7("e", "iZfx*zxzx", plist_id, id, flags, cd_nelmts, cd_values, namelen, + name); /* Check args */ if (cd_nelmts || cd_values) { |