Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge1 issue 839 PRs to hdf5 1 12 #904

Merged
merged 11 commits into from
Aug 12, 2021
1 change: 0 additions & 1 deletion c++/test/ttypes.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -656,7 +656,6 @@ static void
test_named()
{
static hsize_t ds_size[2] = {10, 20};
hsize_t i;
unsigned attr_data[10][20];
DataType * ds_type = NULL;

Expand Down
11 changes: 6 additions & 5 deletions hl/test/test_image.c
Original file line number Diff line number Diff line change
Expand Up @@ -650,10 +650,10 @@ test_generate(void)
HL_TESTING2("make indexed image from land data");

for (i = 0; i < n_elements; i++) {
if (data[i] < 0)
if (data[i] < 0.0f)
image_data[i] = 0;
else
image_data[i] = (unsigned char)((255 * (data[i])) / xmax);
image_data[i] = (unsigned char)((255 * data[i]) / xmax);
}

/* make the image */
Expand All @@ -671,10 +671,11 @@ test_generate(void)
HL_TESTING2("make indexed image from sea data");

for (i = 0; i < n_elements; i++) {
if (data[i] > 0)
if (data[i] > 0.0f)
image_data[i] = 0;
else
image_data[i] = (unsigned char)((255 * (data[i] - xmin)) / xmin);
else {
image_data[i] = (unsigned char)((255.0f * (data[i] - xmin)) / (xmax - xmin));
}
}

/* make the image */
Expand Down
2 changes: 1 addition & 1 deletion release_docs/INSTALL_CMake.txt
Original file line number Diff line number Diff line change
Expand Up @@ -753,7 +753,6 @@ HDF5_ENABLE_DEBUG_APIS "Turn on extra debug output in all packages"
HDF5_ENABLE_DEPRECATED_SYMBOLS "Enable deprecated public API symbols" ON
HDF5_ENABLE_DIRECT_VFD "Build the Direct I/O Virtual File Driver" OFF
HDF5_ENABLE_EMBEDDED_LIBINFO "embed library info into executables" ON
HDF5_ENABLE_HSIZET "Enable datasets larger than memory" ON
HDF5_ENABLE_PARALLEL "Enable parallel build (requires MPI)" OFF
HDF5_ENABLE_PREADWRITE "Use pread/pwrite in sec2/log/core VFDs in place of read/write (when available)" ON
HDF5_ENABLE_TRACE "Enable API tracing capability" OFF
Expand Down Expand Up @@ -795,6 +794,7 @@ HDF5_BUILD_DOC "Build documentation"
HDF5_ENABLE_ANALYZER_TOOLS "enable the use of Clang tools" OFF
HDF5_ENABLE_SANITIZERS "execute the Clang sanitizer" OFF
HDF5_ENABLE_FORMATTERS "format source files" OFF
TEST_SHELL_SCRIPTS "Enable shell script tests" ON

---------------- External Library Options ---------------------
HDF5_ALLOW_EXTERNAL_SUPPORT "Allow External Library Building (NO GIT TGZ)" "NO"
Expand Down
90 changes: 87 additions & 3 deletions release_docs/RELEASE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,91 @@ New Features

Configuration:
-------------
-
- CMake will now run the shell script tests in test/ by default

The test directory includes several shell script tests that previously
were not run by CMake. These are now run by default. TEST_SHELL_SCRIPTS
has been set to ON and SH_PROGRAM has been set to bash (some test
scripts use bash-isms). Platforms without bash (e.g., Windows) will
ignore the script tests.

(DER - 2021/05/23)

- Removed unused HDF5_ENABLE_HSIZET option from CMake

This has been unused for some time and has no effect.

(DER - 2021/05/23)

- Add CMake variable HDF5_LIB_INFIX

This infix is added to all library names after 'hdf5'.
e.g. the infix '_openmpi' results in the library name 'libhdf5_openmpi.so'
This name is used in packages on debian based systems.
(see https://packages.debian.org/jessie/amd64/libhdf5-openmpi-8/filelist)

(barcode - 2021/03/22)


Library:
--------
-
- H5Gcreate1() now rejects size_hint parameters larger than UINT32_MAX

The size_hint value is ultimately stored in a uint32_t struct field,
so specifying a value larger than this on a 64-bit machine can cause
undefined behavior including crashing the system.

The documentation for this API call was also incorrect, stating that
passing a negative value would cause the library to use a default
value. Instead, passing a "negative" value actually passes a very large
value, which is probably not what the user intends and can cause
crashes on 64-bit systems.

The Doxygen documentation has been updated and passing values larger
than UINT32_MAX for size_hint will now produce a normal HDF5 error.

(DER - 2021/04/29, HDFFV-11241)


- H5Pset_fapl_log() no longer crashes when passed an invalid fapl ID

When passed an invalid fapl ID, H5Pset_fapl_log() would usually
segfault when attempting to free an uninitialized pointer in the error
handling code. This behavior is more common in release builds or
when the memory sanitization checks were not selected as a build
option.

The pointer is now correctly initialized and the API call now
produces a normal HDF5 error when fed an invalid fapl ID.

(DER - 2021/04/28, HDFFV-11240)

- Fixes a segfault when H5Pset_mdc_log_options() is called multiple times

The call incorrectly attempts to free an internal copy of the previous
log location string, which causes a segfault. This only happens
when the call is invoked multiple times on the same property list.
On the first call to a given fapl, the log location is set to NULL so
the segfault does not occur.

The string is now handled properly and the segfault no longer occurs.

(DER - 2021/04/27, HDFFV-11239)


Parallel Library:
-----------------
-


Fortran Library:
----------------
-


C++ Library:
------------
-


Java Library:
Expand Down Expand Up @@ -114,7 +193,12 @@ Bug Fixes since HDF5-1.12.1 release

C++ APIs
--------
-
- Added DataSet::operator=

Some compilers complain if the copy constructor is given explicitly
but the assignment operator is implicitly set to default.

(2021/05/19)


Testing
Expand Down
4 changes: 0 additions & 4 deletions src/H5.c
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,6 @@ hbool_t H5_PKG_INIT_VAR = FALSE;
/* Library Private Variables */
/*****************************/

/* HDF5 API Entered variable */
/* (move to H5.c when new FUNC_ENTER macros in actual use -QAK) */
hbool_t H5_api_entered_g = FALSE;

/* statically initialize block for pthread_once call used in initializing */
/* the first global mutex */
#ifdef H5_HAVE_THREADSAFE
Expand Down
Loading