Convert assertion on (possibly corrupt) file contents to normal error check (#1861)

* Convert assertion on (possibly corrupt) file contents to normal error check

* Committing clang-format changes

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
This commit is contained in:
jhendersonHDF 2022-07-08 15:04:23 -05:00 committed by GitHub
parent a45ade8886
commit aa688c68c4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 2 deletions

View File

@ -126,7 +126,16 @@ Bug Fixes since HDF5-1.13.1 release
===================================
Library
-------
-
- Converted an assertion on (possibly corrupt) file contents to a normal
error check
Previously, the library contained an assertion check that a read superblock
doesn't contain a superblock extension message when the superblock
version < 2. When a corrupt HDF5 file is read, this assertion can be triggered
in debug builds of HDF5. In production builds, this situation could cause
either a library error or a crash, depending on the platform.
(JTH - 2022/07/08)
Java Library

View File

@ -687,7 +687,9 @@ H5F__super_read(H5F_t *f, H5P_genplist_t *fa_plist, hbool_t initial_read)
/* Sanity check - superblock extension should only be defined for
* superblock version >= 2.
*/
HDassert(sblock->super_vers >= HDF5_SUPERBLOCK_VERSION_2);
if (sblock->super_vers < HDF5_SUPERBLOCK_VERSION_2)
HGOTO_ERROR(H5E_FILE, H5E_BADVALUE, FAIL,
"invalid superblock - extension message should not be defined for version < 2")
/* Check for superblock extension being located "outside" the stored
* 'eoa' value, which can occur with the split/multi VFD.