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,
openSUSE Build Service is sponsored by