diff options
author | Allen Byrne <byrn@hdfgroup.org> | 2019-01-25 14:28:53 (GMT) |
---|---|---|
committer | Allen Byrne <byrn@hdfgroup.org> | 2019-01-25 14:28:53 (GMT) |
commit | 73fcbbee97c6385fb2b5009e5858ae1d6c28b3c3 (patch) | |
tree | c5f9a14f38421e1e9e0ee65acf0578e74d6fc1af /tools/src/h5repack/h5repack_filters.c | |
parent | 37f5c682b66d503d556c1e5fe99c5c0c98f5e7b3 (diff) | |
parent | 2fe69e7639198b174da393e47a029d0ac35b31c8 (diff) | |
download | hdf5-73fcbbee97c6385fb2b5009e5858ae1d6c28b3c3.zip hdf5-73fcbbee97c6385fb2b5009e5858ae1d6c28b3c3.tar.gz hdf5-73fcbbee97c6385fb2b5009e5858ae1d6c28b3c3.tar.bz2 |
Merging in latest from upstream (HDFFV/hdf5:refs/heads/develop)
* commit '2fe69e7639198b174da393e47a029d0ac35b31c8':
Added test for HDFFV-10588
Fixed HDFFV-10684
Fixed HDFFV-10586 and HDFFV-10588 Description: HDFFV-10586 CVE-2018-17434 Divide by zero inh5repack_filters Added a check for zero value HDFFV-10588 CVE-2018-17437 Memory leak in H5O_dtype_decode_helper This is actually an Invalid read issue. It was found that the attribute name length in an attribute message was corrupted, which caused the buffer pointer to be advanced too far and later caused an invalid read. Added a check to detect attribute name and its length mismatch. The fix is not perfect, but it'll reduce the chance of this issue when a name length is corrupted or the attribute name is corrupted. Platforms tested: Linux/64 (jelly) Linux/64 (platypus) Darwin (osx1010test)
Diffstat (limited to 'tools/src/h5repack/h5repack_filters.c')
-rw-r--r-- | tools/src/h5repack/h5repack_filters.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/tools/src/h5repack/h5repack_filters.c b/tools/src/h5repack/h5repack_filters.c index 0092abc..123263c 100644 --- a/tools/src/h5repack/h5repack_filters.c +++ b/tools/src/h5repack/h5repack_filters.c @@ -338,12 +338,13 @@ int apply_filters(const char* name, /* object name from traverse list */ sm_nbytes = msize; for (i = rank; i > 0; --i) { + if(sm_nbytes == 0) + HGOTO_ERROR(FAIL, H5E_tools_min_id_g, "number of bytes per stripmine must be > 0"); hsize_t size = H5TOOLS_BUFSIZE / sm_nbytes; if (size == 0) /* datum size > H5TOOLS_BUFSIZE */ size = 1; sm_size[i - 1] = MIN(dims[i - 1], size); sm_nbytes *= sm_size[i - 1]; - HDassert(sm_nbytes > 0); } for (i = 0; i < rank; i++) { |