summaryrefslogtreecommitdiffstats
path: root/src/H5Oprivate.h
diff options
context:
space:
mode:
authorNeil Fortner <nfortne2@hdfgroup.org>2019-01-08 01:30:26 (GMT)
committerNeil Fortner <nfortne2@hdfgroup.org>2019-01-08 01:30:26 (GMT)
commit9c12b625fd092bc3e87eb21f1fa554951ff4bdd8 (patch)
tree594691f1485f6a68f3c70ffcb438c9f7a02076b5 /src/H5Oprivate.h
parentd9b1ec3ce8672cd9c308f72baedc8a6f7bb9474c (diff)
parent685288beabc4f4383d69ec07be05c067fab78544 (diff)
downloadhdf5-9c12b625fd092bc3e87eb21f1fa554951ff4bdd8.zip
hdf5-9c12b625fd092bc3e87eb21f1fa554951ff4bdd8.tar.gz
hdf5-9c12b625fd092bc3e87eb21f1fa554951ff4bdd8.tar.bz2
Merge pull request #1448 in HDFFV/hdf5 from ~NFORTNE2/hdf5_naf:develop to develop
Avoid potential invalid read when decoding unknown object header message. * commit '685288beabc4f4383d69ec07be05c067fab78544': Delay checking if decoded message's "shareable" flag is appropriate for the message type until we've verified we understand the message type. Reduce size of H5O_msg_class_g to *not* include space for H5O_BOGUS_INVALID. Make bogus messages shareable. Add new bogus message test with shareable messages to cover the formerly problematic code. Re-run gen_bogus.c to add this test case and also to fix the bogus_invalid messages that were no longer H5O_BOGUS_INVLAID due to a new message class being added in a previous commit. Added comment to remind developers to run gen_bogus.c when adding a new message class.
Diffstat (limited to 'src/H5Oprivate.h')
-rw-r--r--src/H5Oprivate.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/H5Oprivate.h b/src/H5Oprivate.h
index e0926e2..5987ecf 100644
--- a/src/H5Oprivate.h
+++ b/src/H5Oprivate.h
@@ -227,11 +227,11 @@ typedef struct H5O_copy_t {
* Note: Must increment H5O_MSG_TYPES in H5Opkg.h and update H5O_msg_class_g
* in H5O.c when creating a new message type. Also bump the value of
* H5O_BOGUS_INVALID_ID, below, to be one greater than the value of
- * H5O_UNKNOWN_ID.
+ * H5O_UNKNOWN_ID, and re-run gen_bogus.c.
*
* (this should never exist in a file)
*/
-#define H5O_BOGUS_INVALID_ID 0x001A /* "Bogus invalid" Message. */
+#define H5O_BOGUS_INVALID_ID 0x001a /* "Bogus invalid" Message. */
/* Shared object message types.
* Shared objects can be committed, in which case the shared message contains
@@ -651,6 +651,7 @@ typedef struct H5O_layout_t {
*/
#define H5O_BOGUS_VALUE 0xdeadbeef
typedef struct H5O_bogus_t {
+ H5O_shared_t sh_loc; /* Shared message info (must be first) */
unsigned u; /* Hold the bogus info */
} H5O_bogus_t;
#endif /* H5O_ENABLE_BOGUS */