Commit Graph

1790 Commits

Author SHA1 Message Date
Scot Breitenfeld
654dd01525
Force lowercase Fortran module file names (#2891)
* fixed args in execvp for h5fuse

* Force lowercase Fortran module file names for Cray compilers
2023-05-03 22:03:58 -05:00
jhendersonHDF
25a8ba9fde
Add RELEASE.txt entry for API tests (#2889) 2023-05-03 14:11:38 -07:00
Scot Breitenfeld
a0340338e5
Add Fortran Selection IO APIs (#2864)
new selection IO fortran APIs with tests
2023-05-01 15:21:47 -07:00
Neil Fortner
3236fb79ce
Implement selection I/O with type conversion (#2823)
Initial implementation of selection I/O with type conversion.  Allows
Parallel collective I/O with type conversion, as long as selection I/O
is enabled.
2023-04-28 16:58:25 -07:00
jhendersonHDF
bd7616cf98
Fix v1 object header gap bug in H5Ocopy (#2785) 2023-04-26 15:57:22 -07:00
Allen Byrne
ca27cf94a2
Add support for CMakePresets and fix example download (#2817) 2023-04-26 15:56:57 -07:00
jhendersonHDF
b7c8061505
Allow H5P_DEFAULT in H5Pget_vol_cap_flags and H5Pget_vol_id (#2807) 2023-04-25 10:04:17 -07:00
jhendersonHDF
2ce5e3e6e1
Add release note for ROS3 VFD anonymous credential fix (#2801) 2023-04-24 09:12:30 -07:00
Allen Byrne
3f5842cdd2
Correct CMake option defaults - deprecate szip for libaec (#2778) 2023-04-23 13:11:17 -07:00
Scot Breitenfeld
def21b1e33
Added Fortran Async APIs (#2715)
H5A, H5D, H5ES, H5G, H5F, H5L and H5O async APIs were added.
2023-04-21 11:07:48 -05:00
Allen Byrne
445fcab52f
Add no subsets option to h5diff like h5dump #2688 (#2756) 2023-04-18 11:21:18 -07:00
Dana Robinson
ad808ec66a
Remove more author/date lines from RELEASE.txt (#2767) 2023-04-17 09:14:09 -07:00
Dana Robinson
d5b9d52344
Remove dates and initials from RELEASE.txt entries (#2746) 2023-04-16 09:09:41 -07:00
Dana Robinson
f9c16de8a7
Fix memory leaks when processing OH cont messages (#2723)
Malformed object header continuation messages can result in a too-small
buffer being passed to the decode function, which could lead to reading
past the end of the buffer. Additionally, errors in processing these
malformed messages can lead to allocated memory not being cleaned up.

This fix adds bounds checking and cleanup code to the object header
continuation message processing.

Fixes #2604
2023-04-14 15:17:24 -07:00
Kobrin Eli
10d4a6d094
Fix out of bounds in hdf5/src/H5Fint.c:2859 (#2691) 2023-04-13 14:37:10 -07:00
bmribler
65eff22348
Fixed GH-2603, heap-buffer-overflow in H5O__linfo_decode (#2697)
* Fixed GH-2603, heap-buffer-overflow in H5O__linfo_decode

Verified with valgrind -v --tool=memcheck --leak-check=full h5dump POV-GH-2603
The several invalid reads shown originally are now gone.
2023-04-13 14:35:45 -07:00
Dana Robinson
d6243791d4
Add a RELEASE.txt note for GH #2605 (#2724) 2023-04-13 14:34:50 -07:00
vchoi-hdfgroup
67d4b5eaf8
Fix for github issue #2599: (#2665)
* Fix for github issue #2599:
As indicated in the description, memory leak is detected when running "./h5dump pov".

The problem is: when calling H5O__add_cont_msg() from H5O__chunk_deserialize(),
memory is allocated for cont_msg_info->msgs.  Eventually, when the library tries to load
the continuation message via H5AC_protect() in H5O_protect(), error is
encountered due to illegal info in the continuation message.
Due to the error, H5O_protect() exits but the memory allocated for cont_msg_info->msgs is not freed.

When we figure out how to handle fuzzed files that we didn't generate,
a test needs to be added to run h5dump with the provided "pov" file.

* Add message to release notes for the fix to github issue #2599.
2023-04-11 23:06:29 -05:00
glennsong09
367e4a3933
Clean up memory allocated when reading messages in H5Dlayout on error (#2602) (#2687) 2023-04-11 16:09:05 -05:00
mattjala
2eedc8e8f7
Fix invalid memory access in H5O__ginfo_decode (#2663) 2023-04-11 15:22:11 -05:00
jhendersonHDF
bc8fa3a477
Add buffer overrun checks to H5O__layout_decode and H5O__sdspace_decode (#2679)
Co-authored-by: Larry Knox <lrknox@hdfgroup.org>
2023-04-11 14:47:51 -05:00
Scot Breitenfeld
2e7d8f7ed5
Perlmutter was fixed (#2677) 2023-04-11 14:41:06 -05:00
jhendersonHDF
b77cb393b8
Fix improper include of build directory (#2422, #2621) (#2667) 2023-04-11 14:31:25 -05:00
jhendersonHDF
027ee7c633
Fix a heap buffer overflow during H5D__compact_readvv (GitHub #2606) (#2664) 2023-04-11 14:08:46 -05:00
Allen Byrne
fc91e8856f
Fix #2598 sanitize leak (#2660) 2023-04-07 10:35:51 -07:00
jhendersonHDF
7b426bf3ea
CMake - Match Autotools behavior for library instrumentation (#2648)
Enable library instrumentation by default for parallel debug builds
2023-03-31 22:38:15 -05:00
jhendersonHDF
31c26e72c5
Fix a memory corruption issue in H5S__point_project_simple (#2626) 2023-03-23 22:55:34 -05:00
Dana Robinson
af2666013f
Bring new release_docs scheme from 1.14 (#2614) 2023-03-22 18:41:00 -07:00
jhendersonHDF
1392b9fc17
Subfiling VFD - fix issues with I/O concentrator selection strategies (#2571)
Fix multiple bugs with the SELECT_IOC_EVERY_NTH_RANK and
SELECT_IOC_TOTAL I/O concentrator selection strategies and add a
regression test for them
2023-03-17 15:45:07 -05:00
Egbert Eich
b16ec83d4b
Check for overflow when calculating on-disk attribute data size (#2459)
* Remove duplicate code

Signed-off-by: Egbert Eich <eich@suse.com>

* Add test case for CVE-2021-37501

Bogus sizes in this test case causes the on-disk data size
calculation in H5O__attr_decode() to overflow so that the
calculated size becomes 0. This causes the read to overflow
and h5dump to segfault.
This test case was crafted, the test file was not directly
generated by HDF5.
Test case from:
https://github.com/ST4RF4LL/Something_Found/blob/main/HDF5_v1.13.0_h5dump_heap_overflow.md
2023-03-02 11:17:49 -06:00
Allen Byrne
d7128d144b
Add fetchcontent for compression libs and fix cmake config (#2487)
* Add fetchcontent for compression libs and fix cmake config

* MSDOS is a reserved define name

* Add release note and update install doc for FetchContent

* Add CI test for FetchContent

* Use LINK_COMP_LIBS instead of STATIC_LIBRARY for depends

* Use general link
2023-02-26 15:06:14 -08:00
jhendersonHDF
49fdba1091
Subfiling VFD - add option to specify config file prefix (#2495) 2023-02-26 10:12:00 -08:00
jhendersonHDF
b3da28b731
Fix issue with collective metadata writes of global heap data (#2480) 2023-02-20 08:49:34 -06:00
Allen Byrne
32a54c0e2e
CMake generated pkg-config file is incorrect #2259 (#2476)
* CMake generated pkg-config file is incorrect #2259

* Fix fortran pc template

* hdf5.pc is incorrect for debug builds #1546

* Correct pkg name and lib name

* Fix typo

* Fix missing space
2023-02-17 14:17:17 -08:00
Allen Byrne
2c9de7a9ae
Port VOL connector Guide to doxygen (#2333)
* Port VOL connector Guide to doxygen

* Fix spelling

* Updated VOL UG ref and added release note
2023-01-18 01:04:41 -08:00
Dana Robinson
c0b3646193
Adds RELEASE.txt notes and updates Doxygen (#2377) (#2379) 2022-12-29 12:58:54 -08:00
Allen Byrne
9f5cf0a457
H5F_LIBVER_LATEST changes for move to 1.15 (#2288)
* H5F_LIBVER_LATEST changes for move to 1.15

* Add new default api check

* Format fixes

* Fix default configure

* fix lib version tests

* Fix another version variable

* Add 1.14 doc link
2022-12-21 10:07:25 -08:00
Allen Byrne
c1e44d32e6
Fix doxygen warnings and remove javadocs (#2324)
* Fix doxygen warnings and remove javadocs

* fix typo
2022-12-20 16:59:40 -06:00
Allen Byrne
149b8e9769
Disable hl tools by default (#2313)
* Disable hl tools by default

* identify the tools

* Only GIF tools are depecated

* Add new option

* Update autotools
2022-12-16 19:56:07 -08:00
vchoi-hdfgroup
0cb5808087
Hdffv 11052 (#2303)
* Fix for HDFFV-11052: h5debug fails on a corrupted file (h5_nrefs_POC) producing a core dump.
When h5debug closes the corrupted file, the library calls H5F__dest() which performs all the
closing operations for the file "f" (H5F_t *) but just keeping note of errors in "ret_value"
all the way till the end of the routine.  The user-provided corrupted file has an illegal
file size causing failure when reading the image during the closing process.
At the end of this routine it sets f->shared to NULL and then frees "f".
This is done whether there is error or not in "ret_value".
Due to the failure in reading the file earlier, the routine then returns error.
The error return from H5F__dest() causes the file object "f" not being removed from the
ID node table.  When the library finally exits, it will try to close the
file objects in the table.  This causes assert failure when H5F_ID_EXISTS(f) or H5F_NREFS(f).
Fix:
a) H5F_dest(): free the f only when there is no error in "ret_value" at the end of the routine.
b) H5VL__native_file_close(): if f->shared is NULL, free "f"; otherwise, perform closing on "f" as before.
c) h5debug.c main(): track error return from H5Fclose().

* Committing clang-format changes

* Add test and release note info for fix to HDFFV-11052 which is merged via PR#2291.

* Committing clang-format changes

* Add the test file to Cmake.

Co-authored-by: vchoi <vchoi@jelly.ad.hdfgroup.org>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-12-15 05:32:23 -08:00
Allen Byrne
b7511c19d0
Update windows worker compilers (#2286)
* Update windows worker compilers

* Update bin and test issues

* Update script and revert java test
2022-12-14 08:58:20 -06:00
Egbert Eich
0b4e9cf976
Compound datatypes may not have members of size 0 (#2243)
* Compound datatypes may not have members of size 0

A member size of 0 may lead to an FPE later on as reported in
CVE-2021-46244. To avoid this, check for this as soon as the
member is decoded.
This should probably be done in H5O_dtype_decode_helper() already,
however it is not clear whether all sizes are expected to be != 0.

This fixes CVE-2021-46244 / Bug #2242.

Signed-off-by: Egbert Eich <eich@suse.com>

* Rework error recovery code in H5O__dtype_decode_helper() and
H5O__dtype_decode().

* Format changes for src/H5Odtype.c.

Signed-off-by: Egbert Eich <eich@suse.com>
Co-authored-by: Neil Fortner <nfortne2@hdfgroup.org>
Co-authored-by: Larry Knox <lrknox@hdfgroup.org>
2022-12-07 16:14:40 -06:00
Allen Byrne
dcccc35526
Correct requires setting for pkgconfig files (#2280)
* Correct requires setting for pkgconfig files

* Add issue number
2022-12-07 16:05:51 -06:00
Egbert Eich
24700e8f06
CVE 2021 46242 develop (#2255)
* When evicting driver info block, NULL the corresponding entry

Since H5C_expunge_entry() called (from H5AC_expunge_entry()) sets the  flag
H5C__FLUSH_INVALIDATE_FLAG, the driver info block will be freed. NULLing the
pointer in  f->shared->drvinfo will prevent use-after-free  when it is used in other
functions (like  H5F__dest()) - as other places will check whether the pointer is
initialized before using its value.

This fixes CVE-2021-46242 / Bug #2254

Signed-off-by: Egbert Eich <eich@suse.com>

* When evicting the superblock, NULL the corresponding entry

The call to H5AC_expunge_entry() will free the corresonding structure,
to avoid a use-after-free, the corrsponding pointer entry will be NULLed.

Signed-off-by: Egbert Eich <eich@suse.com>

Signed-off-by: Egbert Eich <eich@suse.com>
2022-12-02 14:24:14 -06:00
Allen Byrne
88b24c258b
Output should only be printed if verbose. (#2273)
* Output should only be printed if verbose.

* Add note
2022-12-02 09:39:49 -08:00
Egbert Eich
4e0277c35a
Report error if dimensions of chunked storage in data layout < 2 (#2241)
For Data Layout Messages version 1 & 2 the specification state
that the value stored in the data field is 1 greater than the
number of dimensions in the dataspace. For version 3 this is
not explicitly stated but the implementation suggests it to be
the case.
Thus the set value needs to be at least 2. For dimensionality
< 2 an out-of-bounds access occurs as in CVE-2021-45833.

This fixes CVE-2021-45833 / Bug #2240.

Signed-off-by: Egbert Eich <eich@suse.com>

Signed-off-by: Egbert Eich <eich@suse.com>
Co-authored-by: Larry Knox <lrknox@hdfgroup.org>
2022-12-01 23:04:42 -06:00
Egbert Eich
0f94940f1a
H5O_dtype_decode_helper: Parent of enum needs to have same size as enum itself (#2237)
The size of the enumeration values is determined by the size of the parent.
Functions accessing the enumeration values use the size of the enumeration
to determine the size of each element and how much data to copy. Thus the
size of the enumeration and its parent need to match.
Check here to avoid unpleasant surprises later.

This fixes CVE-2018-14031 / Bug #2236.

Signed-off-by: Egbert Eich <eich@suse.com>
2022-11-11 00:05:00 -06:00
Egbert Eich
34ec3bb7bc
Make sure info block for external links has at least 3 bytes (#2234)
According to the specification, the information block for external links
contains 1 byte of version/flag information and two 0 terminated strings
for the object linked to and the full path.
Although not very useful, the minimum string length for each (with
terminating 0) would be one byte.
Checking this will help to avoid SEGVs triggered by bogus files.

This fixes CVE-2018-16438 / Bug #2233.

Signed-off-by: Egbert Eich <eich@suse.com>
2022-11-10 23:41:53 -06:00
Egbert Eich
1750b4b0af
Validate location (offset) of the accumulated metadata when comparing (#2231)
Initially, the accumulated metadata location is initialized to HADDR_UNDEF
- the highest available address. Bogus input files may provide a location
or size matching this value. Comparing this address against such bogus
values may provide false positives. This make sure, the value has been
initilized or fail the comparison early and let other parts of the
code deal with the bogus address/size.
Note: To avoid unnecessary checks, we have assumed that if the 'dirty'
member in the same structure is true the location is valid.

This fixes CVE-2018-13867 / Bug #2230.

Signed-off-by: Egbert Eich <eich@suse.com>
2022-11-10 23:24:56 -06:00
Egbert Eich
659bc99fd1
Make H5O__fsinfo_decode() more resilient to out-of-bound reads. (#2229)
When decoding a file space info message in H5O__fsinfo_decode() make
sure each element to be decoded is still within the message. Malformed
hdf5 files may have trunkated content which does not match the
expected size. Checking this will prevent attempting to decode
unrelated data and heap overflows. So far, only free space manager
address data was checked before decoding.

This fixes CVE-2021-45830 / Bug #2228.

Signed-off-by: Egbert Eich <eich@suse.com>

Additions

Co-authored-by: Larry Knox <lrknox@hdfgroup.org>
2022-11-10 23:20:09 -06:00