Corrupt file or incorrect fapl setting can cause multi driver to throw assertion
- Dominant language
- C
- Stars
- 988
- Forks
- 355
- Avg merge
- 4d 2h
- Merged PRs (30d)
- 12
Description
The multi driver divides the address space up into very large blocks based on the type of data being stored. The exact way the address space is divided up is configurable by the H5Pset_fapl_multi API. When opening a file, the superblock code somewhat hackishlly sets the eoa of the file to a size that allows it to read the superblock without throwing an error, but if the type address mapping used to open the file does not match that used to create the file, or if the superblock extension address is corrupted, that address can fall outside the range allocated to H5F_MEM_OHDR (which is the type of the superblock extension), causing an assertion failure, or potential bad behavior if assertions are disabled. We should either convert these assertions to error checks or find a way to eliminate these speculative EOA settings during file open.
Contributor guide
Assessment
This issue has not been assessed yet.