summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllen Byrne <byrn@hdfgroup.org>2010-08-20 15:48:12 (GMT)
committerAllen Byrne <byrn@hdfgroup.org>2010-08-20 15:48:12 (GMT)
commitf4c75504d4ba7fa17844119a9c0ad3f8a538a1d4 (patch)
tree9dda1e6f8a1183e599934393a7f3d38ba1517bce
parent4050bd2422f4f9f4ede4ed3b3ccacc0c3a19cb5a (diff)
downloadhdf5-f4c75504d4ba7fa17844119a9c0ad3f8a538a1d4.zip
hdf5-f4c75504d4ba7fa17844119a9c0ad3f8a538a1d4.tar.gz
hdf5-f4c75504d4ba7fa17844119a9c0ad3f8a538a1d4.tar.bz2
[svn-r19262] Undo r19261.
-rw-r--r--tools/lib/h5tools.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/tools/lib/h5tools.c b/tools/lib/h5tools.c
index b048602..3cfe56b 100644
--- a/tools/lib/h5tools.c
+++ b/tools/lib/h5tools.c
@@ -4145,6 +4145,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;
@@ -4156,6 +4158,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");