diff options
author | Neil Fortner <nfortne2@hdfgroup.org> | 2019-01-08 01:30:26 (GMT) |
---|---|---|
committer | Neil Fortner <nfortne2@hdfgroup.org> | 2019-01-08 01:30:26 (GMT) |
commit | 9c12b625fd092bc3e87eb21f1fa554951ff4bdd8 (patch) | |
tree | 594691f1485f6a68f3c70ffcb438c9f7a02076b5 /src/H5Oprivate.h | |
parent | d9b1ec3ce8672cd9c308f72baedc8a6f7bb9474c (diff) | |
parent | 685288beabc4f4383d69ec07be05c067fab78544 (diff) | |
download | hdf5-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.h | 5 |
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 */ |