Adds predefined datatypes for little- and big-endian bfloat16 data
Does not add support for any native bfloat16 types; datatype conversions are performed in software
Also adds missing float16 predefined types to fortran
An HDF5 file could be specifically constructed such that an object
header contained a corrupted continuation message which pointed
back to itself. This eventually resulted in an internal buffer being
allocated with too small of a size, leading to a heap buffer overflow
when encoding an object header message into it. This has been fixed
by checking the expected number of deserialized object header chunks
against the actual value as chunks are being deserialized.
Fixes CVE-2025-6816, CVE-2025-6856, CVE-2025-2923
Adds H5FDsubfiling_get_file_mapping() API to map logical HDF5 files to physical subfiles, with Fortran support and comprehensive testing.
Adds H5FDsubfiling_get_file_mapping() in H5FDsubfiling.c to retrieve subfile paths for a logical HDF5 file.
Updates Fortran interface in H5VFDff.F90 to include h5fdsubfiling_get_file_mapping_f().
Updates h5fuse.in to support a list of subfiles for processing with a new -l option.
* Fixes CVE-2025-6750
A heap buffer overflow occurred because an mtime message was not properly decoded, resulting in a buffer of size 0 being passed into the encoder.
This PR added decoding for both old and new mtime messages which will allow invalid message size to be detected.
Fixes#5549
* Updated h5vers and release scripts to handle change from RELEASE.txt to
CHANGELOG.md.
* Added links to wiki and cdash for Platforms Tested.
* Don't use heading format for version lines at top of README.md and
CHANGELOG.md files.
The GitHub issue #5579 included several security vulnerabilities in function
H5C__reconstruct_cache_entry().
This PR addressed them by:
- adding buffer size argument to the function
- adding buffer overflow checks
- adding input validations
- releasing allocated resource on failure
These changes addressed the crashes reported. However, there is a skiplist
crash during the unwinding process that has to be investigated.
A security fix from 1.14.6 introduced a regression in the scale-offset
filter where normal data values could cause the library to emit an
error (not a crash/segfault).
Fixes GitHub #5861
* Remove NEWSLETTER files.
Update tarball.yml and release-files.yml to upload description for
snapshots and releases.
* Add path to CHANGELOG.md in tarball.yml.
The PR adds a compile assert to ensure that size_t and ssize_t
have the same size, just to be sure.
* Use SSIZE_T for ssize_t on Windows
* Use SSIZE_T and SSIZE_T_MAX
* Add missing header
* Exclude MinGW from ssize_t ifdefs
This feature is required to be in H5public.h, but is protected by
an HDF5 feature test macro that will soon be private. There is also
no guarantee that the compiler used to build the software has the
same support for __builtin_expect() that the application compiler
has.
This PR updates the feature test checks for __builtin_expect()
Partial fix for #5819
When linking a file free space section into a free space manager's
internal data structures, the library previously wouldn't unlink
the free space section when it failed to update the free space
manager's internal data structures. This could eventually result
in a use-after-free issue due to the stale reference kept around.
* Remove hbool_t from the public API
This was previously removed from the source code, but the API calls
retained hbool_t in the public API calls. This commit removes
hbool_t from the public APIs.
hbool_t is retained as a typedef for bool in H5public.h so existing
code doesn't break.
During testing, specific VFDs create files with names that
are different than the "base" filename passed to H5Fcreate().
The unicode tests are setup to expect specific filenames, so
these tests are skipped when the test utility function
h5_fixname() would modify the "base" filename.
This file is intended for internal glibc use and should not be included
from user code. Instead, you are supposed to set appropriate feature
test macros like _POSIX_C_SOURCE before including C/POSIX library
headers, which we already do.
* Fixed the link checker error where table headers
contained (\# of rows) and (\# of columns) with escaped hash symbols that Doxygen was
incorrectly interpreting as malformed links.
Treat filenames as UTF-8 initially and fall back to ANSI functions
if conversion to UTF-16 fails
Adds new HDF5_PREFER_WINDOWS_CODE_PAGE environment variable to
prefer interpreting filenames according to the active Windows code
page rather than assuming UTF-8 encoding