summaryrefslogtreecommitdiffstats
path: root/src/H5Pfcpl.c
diff options
context:
space:
mode:
authorVailin Choi <vchoi@hdfgroup.org>2015-03-24 17:13:26 (GMT)
committerVailin Choi <vchoi@hdfgroup.org>2015-03-24 17:13:26 (GMT)
commit08d0edb920ae93f4d2494831479ad6200ff208b5 (patch)
tree226266761dc3b36ab5608ccada6a096184a51326 /src/H5Pfcpl.c
parent37a019593a4b6e2ab76eab140e3c66fff2625d23 (diff)
downloadhdf5-08d0edb920ae93f4d2494831479ad6200ff208b5.zip
hdf5-08d0edb920ae93f4d2494831479ad6200ff208b5.tar.gz
hdf5-08d0edb920ae93f4d2494831479ad6200ff208b5.tar.bz2
[svn-r26556] Merge the fix for HDFFV-9173 from trunk to 1_8:
H5Pset_istore_k() will validate the "ik" value to not exceed the max v1 btree entries (2 bytes) The same check for H5Pset_sym_k() "ik" value. h5committested.
Diffstat (limited to 'src/H5Pfcpl.c')
-rw-r--r--src/H5Pfcpl.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/H5Pfcpl.c b/src/H5Pfcpl.c
index d114650..a054471 100644
--- a/src/H5Pfcpl.c
+++ b/src/H5Pfcpl.c
@@ -496,6 +496,9 @@ H5Pset_sym_k(hid_t plist_id, unsigned ik, unsigned lk)
/* Set values */
if (ik > 0) {
+ if((ik * 2) >= HDF5_BTREE_IK_MAX_ENTRIES)
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "istore IK value exceeds maximum B-tree entries");
+
if(H5P_get(plist, H5F_CRT_BTREE_RANK_NAME, btree_k) < 0)
HGOTO_ERROR(H5E_PLIST, H5E_CANTGET, FAIL, "can't get rank for btree interanl nodes");
btree_k[H5B_SNODE_ID] = ik;
@@ -593,6 +596,9 @@ H5Pset_istore_k(hid_t plist_id, unsigned ik)
if (ik == 0)
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "istore IK value must be positive");
+ if((ik * 2) >= HDF5_BTREE_IK_MAX_ENTRIES)
+ HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "istore IK value exceeds maximum B-tree entries");
+
/* Get the plist structure */
if(NULL == (plist = H5P_object_verify(plist_id,H5P_FILE_CREATE)))
HGOTO_ERROR(H5E_ATOM, H5E_BADATOM, FAIL, "can't find object for ID");