diff options
author | Allen Byrne <byrn@hdfgroup.org> | 2010-08-20 15:48:42 (GMT) |
---|---|---|
committer | Allen Byrne <byrn@hdfgroup.org> | 2010-08-20 15:48:42 (GMT) |
commit | 82799772ad8ce0896a9e43000ce6e9b6beefa40c (patch) | |
tree | 1b2b8750a7c666b7750bb9733b5c53d8af214942 /tools/lib/h5tools.c | |
parent | b846a4ba203a006e5c712be90d12a7f02662f9ee (diff) | |
download | hdf5-82799772ad8ce0896a9e43000ce6e9b6beefa40c.zip hdf5-82799772ad8ce0896a9e43000ce6e9b6beefa40c.tar.gz hdf5-82799772ad8ce0896a9e43000ce6e9b6beefa40c.tar.bz2 |
[svn-r19263] Undo r19258
Diffstat (limited to 'tools/lib/h5tools.c')
-rw-r--r-- | tools/lib/h5tools.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/tools/lib/h5tools.c b/tools/lib/h5tools.c index 44d0d59..d7aab94 100644 --- a/tools/lib/h5tools.c +++ b/tools/lib/h5tools.c @@ -4150,6 +4150,8 @@ render_bin_output_region_points(hid_t region_space, hid_t region_id, { HERR_INIT(hbool_t, TRUE) hssize_t npoints; + hsize_t alloc_size; + hsize_t *ptdata; int ndims; hid_t dtype; hid_t type_id; @@ -4161,6 +4163,11 @@ render_bin_output_region_points(hid_t region_space, hid_t region_id, if((ndims = H5Sget_simple_extent_ndims(region_space)) < 0) H5E_THROW(FALSE, H5E_tools_min_id_g, "H5Sget_simple_extent_ndims failed"); + alloc_size = npoints * ndims * sizeof(ptdata[0]); + assert(alloc_size == (hsize_t) ((size_t) alloc_size)); /*check for overflow*/ + if((ptdata = malloc((size_t) alloc_size)) == NULL) + HGOTO_ERROR(FALSE, H5E_tools_min_id_g, "Could not allocate buffer for ptdata"); + H5_CHECK_OVERFLOW(npoints, hssize_t, hsize_t); if(H5Sget_select_elem_pointlist(region_space, (hsize_t) 0, (hsize_t) npoints, ptdata) < 0) HGOTO_ERROR(FALSE, H5E_tools_min_id_g, "H5Sget_select_elem_pointlist failed"); |