diff options
author | Neil Fortner <nfortne2@hdfgroup.org> | 2016-09-08 18:47:22 (GMT) |
---|---|---|
committer | Neil Fortner <nfortne2@hdfgroup.org> | 2016-09-08 18:47:22 (GMT) |
commit | bc10fd219e60fc4b9df7d80567ecb1e39ae5b6e3 (patch) | |
tree | dbd0e5ba53c9706a1cd7e14e693db3aa1a047907 /src | |
parent | 130e0a6638351bbdb7e53a82e5bdb810fd13a903 (diff) | |
download | hdf5-bc10fd219e60fc4b9df7d80567ecb1e39ae5b6e3.zip hdf5-bc10fd219e60fc4b9df7d80567ecb1e39ae5b6e3.tar.gz hdf5-bc10fd219e60fc4b9df7d80567ecb1e39ae5b6e3.tar.bz2 |
Change check for number of dimensions for old-style arrays in datatype decoding routine from an assertion to an if/HGOTO_ERROR check, since it is inappropriate to assert the contents of a file will be what we expect.
Diffstat (limited to 'src')
-rw-r--r-- | src/H5Odtype.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/H5Odtype.c b/src/H5Odtype.c index e51d319..3c3f284 100644 --- a/src/H5Odtype.c +++ b/src/H5Odtype.c @@ -311,7 +311,11 @@ H5O_dtype_decode_helper(H5F_t *f, unsigned *ioflags/*in,out*/, const uint8_t **p if(version == H5O_DTYPE_VERSION_1) { /* Decode the number of dimensions */ ndims = *(*pp)++; - HDassert(ndims <= 4); + + /* Check that ndims is valid */ + if(ndims > 4) + HGOTO_ERROR(H5E_DATATYPE, H5E_BADTYPE, FAIL, "invalid number of dimensions for array") + *pp += 3; /*reserved bytes */ /* Skip dimension permutation */ |