diff options
author | Binh-Minh Ribler <bmribler@hdfgroup.org> | 2020-10-26 18:04:35 (GMT) |
---|---|---|
committer | Binh-Minh Ribler <bmribler@hdfgroup.org> | 2020-10-26 18:04:35 (GMT) |
commit | 273c0c18368e5e54d61467e9e5b70e6fd87981c5 (patch) | |
tree | c833ab2f1b28d4a8ad0b5687390201fc6c013abc /src/H5M.c | |
parent | a4269a08b91e794c1de4058348e076be9fef657e (diff) | |
download | hdf5-273c0c18368e5e54d61467e9e5b70e6fd87981c5.zip hdf5-273c0c18368e5e54d61467e9e5b70e6fd87981c5.tar.gz hdf5-273c0c18368e5e54d61467e9e5b70e6fd87981c5.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 and h5repack only failed for the corrupted file now.
Platforms tested:
Linux/64 (jelly)
Diffstat (limited to 'src/H5M.c')
-rw-r--r-- | src/H5M.c | 12 |
1 files changed, 4 insertions, 8 deletions
@@ -246,8 +246,7 @@ H5Mcreate(hid_t loc_id, const char *name, hid_t key_type_id, hid_t val_type_id, hid_t ret_value = H5I_INVALID_HID; /* Return value */ FUNC_ENTER_API(H5I_INVALID_HID) - H5TRACE7("i", "i*siiiii", loc_id, name, key_type_id, val_type_id, lcpl_id, - mcpl_id, mapl_id); + H5TRACE7("i", "i*siiiii", loc_id, name, key_type_id, val_type_id, lcpl_id, mcpl_id, mapl_id); /* Check arguments */ if (!name) @@ -672,8 +671,7 @@ H5Mput(hid_t map_id, hid_t key_mem_type_id, const void *key, hid_t val_mem_type_ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_API(FAIL) - H5TRACE6("e", "ii*xi*xi", map_id, key_mem_type_id, key, val_mem_type_id, value, - dxpl_id); + H5TRACE6("e", "ii*xi*xi", map_id, key_mem_type_id, key, val_mem_type_id, value, dxpl_id); /* Check arguments */ if (key_mem_type_id < 0) @@ -730,8 +728,7 @@ H5Mget(hid_t map_id, hid_t key_mem_type_id, const void *key, hid_t val_mem_type_ herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_API(FAIL) - H5TRACE6("e", "ii*xi*xi", map_id, key_mem_type_id, key, val_mem_type_id, value, - dxpl_id); + H5TRACE6("e", "ii*xi*xi", map_id, key_mem_type_id, key, val_mem_type_id, value, dxpl_id); /* Check arguments */ if (key_mem_type_id < 0) @@ -922,8 +919,7 @@ H5Miterate_by_name(hid_t loc_id, const char *map_name, hsize_t *idx, hid_t key_m herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_API(FAIL) - H5TRACE8("e", "i*s*hix*xii", loc_id, map_name, idx, key_mem_type_id, op, - op_data, dxpl_id, lapl_id); + H5TRACE8("e", "i*s*hix*xii", loc_id, map_name, idx, key_mem_type_id, op, op_data, dxpl_id, lapl_id); /* Check arguments */ if (!map_name) |