File H5O-patches-partial.patch of Package hdf5.28369
From: Egbert Eich <eich@suse.com>
Date: Tue May 21 11:01:43 2024 +0200
Subject: H5O patches (partial)
Patch-mainline: Upstream
Git-repo: https://github.com/HDFGroup/hdf5
Git-commit: 75300469ea9539c48260204a3d1a928deb687724
References: bsc#1224158
Signed-off-by: Egbert Eich <eich@suse.de>
---
src/H5Oint.c | 20 ++++++++++++++++++++
src/H5Opkg.h | 5 +++--
src/H5Oprivate.h | 1 +
3 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/src/H5Oint.c b/src/H5Oint.c
index 7986509b7b..c4814a9822 100644
--- a/src/H5Oint.c
+++ b/src/H5Oint.c
@@ -3050,3 +3050,23 @@ H5O__free(H5O_t *oh)
done:
FUNC_LEAVE_NOAPI(ret_value)
} /* end H5O__free() */
+
+/*-------------------------------------------------------------------------
+ * Function: H5O_has_chksum
+ *
+ * Purpose: Returns true if object header is checksummed
+ *
+ * Return: true/false on success, can't fail
+ *
+ *-------------------------------------------------------------------------
+ */
+bool
+H5O_has_chksum(const H5O_t *oh)
+{
+ FUNC_ENTER_NOAPI_NOINIT_NOERR
+
+ /* Check args */
+ assert(oh);
+
+ FUNC_LEAVE_NOAPI(H5O_SIZEOF_CHKSUM_OH(oh) > 0)
+} /* end H5O_has_chksum() */
diff --git a/src/H5Opkg.h b/src/H5Opkg.h
index 22ee1b0a92..0115fd5150 100644
--- a/src/H5Opkg.h
+++ b/src/H5Opkg.h
@@ -148,8 +148,9 @@
#define H5O_SIZEOF_CHKSUM_OH(O) H5O_SIZEOF_CHKSUM_VERS((O)->version)
/* Input/output flags for decode functions */
-#define H5O_DECODEIO_NOCHANGE 0x01u /* IN: do not modify values */
-#define H5O_DECODEIO_DIRTY 0x02u /* OUT: message has been changed */
+#define H5O_DECODEIO_NOCHANGE 0x01u /* IN: do not modify values */
+#define H5O_DECODEIO_DIRTY 0x02u /* OUT: message has been changed */
+#define H5O_DECODEIO_RFIC_UNUBNT 0x04u /* IN: Relax file integrity checks for unusual numbers of unused bits in numeric datatypes */
/* Macro to incremend ndecode_dirtied (only if we are debugging) */
#ifndef NDEBUG
diff --git a/src/H5Oprivate.h b/src/H5Oprivate.h
index 096c745991..82f08aa810 100644
--- a/src/H5Oprivate.h
+++ b/src/H5Oprivate.h
@@ -931,6 +931,7 @@ H5_DLL time_t H5O_get_oh_mtime(const H5O_t *oh);
H5_DLL uint8_t H5O_get_oh_version(const H5O_t *oh);
H5_DLL herr_t H5O_get_rc_and_type(const H5O_loc_t *oloc, unsigned *rc, H5O_type_t *otype);
H5_DLL H5AC_proxy_entry_t *H5O_get_proxy(const H5O_t *oh);
+H5_DLL bool H5O_has_chksum(const H5O_t *oh);
/* Object header message routines */
H5_DLL herr_t H5O_msg_create(const H5O_loc_t *loc, unsigned type_id, unsigned mesg_flags,