summaryrefslogtreecommitdiffstats
path: root/src/H5Olayout.c
diff options
context:
space:
mode:
authorLarry Knox <lrknox@hdfgroup.org>2018-11-20 17:58:27 (GMT)
committerLarry Knox <lrknox@hdfgroup.org>2018-11-20 17:58:27 (GMT)
commit8544aae3e8ca4b806d9cca5fe54891ca1b5d231d (patch)
tree422dabbc7a1832c806fe1cf7fa8572e49e906311 /src/H5Olayout.c
parent720bbdfe614660c885cd2dd31e5e4678422fcbcf (diff)
parent5a90dd3caee9843de2679bd53f888b2b3f453c00 (diff)
downloadhdf5-8544aae3e8ca4b806d9cca5fe54891ca1b5d231d.zip
hdf5-8544aae3e8ca4b806d9cca5fe54891ca1b5d231d.tar.gz
hdf5-8544aae3e8ca4b806d9cca5fe54891ca1b5d231d.tar.bz2
Merge branch 'develop' of https://bitbucket.hdfgroup.org/scm/hdffv/hdf5 into develop
Diffstat (limited to 'src/H5Olayout.c')
-rw-r--r--src/H5Olayout.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/H5Olayout.c b/src/H5Olayout.c
index 5f16837..2b65e0c 100644
--- a/src/H5Olayout.c
+++ b/src/H5Olayout.c
@@ -243,9 +243,15 @@ H5O__layout_decode(H5F_t *f, H5O_t H5_ATTR_UNUSED *open_oh,
H5F_addr_decode(f, &p, &(mesg->storage.u.chunk.idx_addr));
/* Chunk dimensions */
- for(u = 0; u < mesg->u.chunk.ndims; u++)
+ for(u = 0; u < mesg->u.chunk.ndims; u++) {
UINT32DECODE(p, mesg->u.chunk.dim[u]);
+ /* Just in case that something goes very wrong, such as file corruption. */
+ if(mesg->u.chunk.dim[u] == 0)
+ HGOTO_ERROR(H5E_DATASET, H5E_BADVALUE, NULL, "chunk dimension must be positive: mesg->u.chunk.dim[%u] = %u",
+ u, mesg->u.chunk.dim[u])
+ } /* end for */
+
/* Compute chunk size */
for(u = 1, mesg->u.chunk.size = mesg->u.chunk.dim[0]; u < mesg->u.chunk.ndims; u++)
mesg->u.chunk.size *= mesg->u.chunk.dim[u];