summaryrefslogtreecommitdiffstats
path: root/release_docs
diff options
context:
space:
mode:
authorjhendersonHDF <jhenderson@hdfgroup.org>2023-04-11 19:08:46 (GMT)
committerGitHub <noreply@github.com>2023-04-11 19:08:46 (GMT)
commit027ee7c63389a6587acdd30fe386043ce7d78bad (patch)
treecf9b5250c6c4ef5b435ea20ad08c6e75c764836a /release_docs
parent281071907b9744ed4d560343bb6fe052efdf497b (diff)
downloadhdf5-027ee7c63389a6587acdd30fe386043ce7d78bad.zip
hdf5-027ee7c63389a6587acdd30fe386043ce7d78bad.tar.gz
hdf5-027ee7c63389a6587acdd30fe386043ce7d78bad.tar.bz2
Fix a heap buffer overflow during H5D__compact_readvv (GitHub #2606) (#2664)
Diffstat (limited to 'release_docs')
-rw-r--r--release_docs/RELEASE.txt19
1 files changed, 19 insertions, 0 deletions
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt
index be040f4..a33c97b 100644
--- a/release_docs/RELEASE.txt
+++ b/release_docs/RELEASE.txt
@@ -151,6 +151,25 @@ Bug Fixes since HDF5-1.13.3 release
===================================
Library
-------
+ - Fixed a heap buffer overflow that occurs when reading from
+ a dataset with a compact layout within a malformed HDF5 file
+
+ During opening of a dataset that has a compact layout, the
+ library allocates a buffer that stores the dataset's raw data.
+ The dataset's object header that gets written to the file
+ contains information about how large of a buffer the library
+ should allocate. If this object header is malformed such that
+ it causes the library to allocate a buffer that is too small
+ to hold the dataset's raw data, future I/O to the dataset can
+ result in heap buffer overflows. To fix this issue, an extra
+ check is now performed for compact datasets to ensure that
+ the size of the allocated buffer matches the expected size
+ of the dataset's raw data (as calculated from the dataset's
+ dataspace and datatype information). If the two sizes do not
+ match, opening of the dataset will fail.
+
+ (JTH - 2023/04/04, GH-2606)
+
- Fixed a memory corruption issue that can occur when reading
from a dataset using a hyperslab selection in the file
dataspace and a point selection in the memory dataspace