summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@koziol.gov>2020-04-26 03:52:52 (GMT)
committerDavid Young <dyoung@hdfgroup.org>2020-05-20 14:37:20 (GMT)
commit82e3368f78843ded317bf194fbe36d3a29d44f08 (patch)
treebb5aa2f87eab4d660a53e61d77ad658537d6a3f7 /tools
parent2eec9f839b68895771a54d200f55508c60bb689f (diff)
downloadhdf5-82e3368f78843ded317bf194fbe36d3a29d44f08.zip
hdf5-82e3368f78843ded317bf194fbe36d3a29d44f08.tar.gz
hdf5-82e3368f78843ded317bf194fbe36d3a29d44f08.tar.bz2
Range check # of 'extra' command-line parameters against array size.
Diffstat (limited to 'tools')
-rw-r--r--tools/src/misc/h5debug.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/tools/src/misc/h5debug.c b/tools/src/misc/h5debug.c
index 1b8d460..e9a783b 100644
--- a/tools/src/misc/h5debug.c
+++ b/tools/src/misc/h5debug.c
@@ -335,7 +335,15 @@ main(int argc, char *argv[])
/* Extra arguments for primary data structure */
HDmemset(extra, 0, sizeof(extra));
if(argc > 3) {
- extra_count = argc - 3; /* Number of extra arguments */
+ /* Number of extra arguments */
+ extra_count = argc - 3;
+
+ /* Range check against 'extra' array size */
+ if(extra_count > (int)(sizeof(extra) / sizeof(haddr_t))) {
+ HDfprintf(stderr, "\nWARNING: Only using first %d extra parameters\n\n", (int)(sizeof(extra) / sizeof(haddr_t)));
+ extra_count = (int)(sizeof(extra) / sizeof(haddr_t));
+ } /* end if */
+
for(u = 0; u < (size_t)extra_count; u++)
extra[u] = (haddr_t)HDstrtoll(argv[u + 3], NULL, 0);
} /* end if */