summaryrefslogtreecommitdiffstats
path: root/src/H5Dio.c
diff options
context:
space:
mode:
authorRaymond Lu <songyulu@hdfgroup.org>2012-03-22 19:31:01 (GMT)
committerRaymond Lu <songyulu@hdfgroup.org>2012-03-22 19:31:01 (GMT)
commitdaef205d04464c96d933727d1e97378cbfe094cf (patch)
treea458bc959f3027df3f1d87f62d3762e804c2c3ef /src/H5Dio.c
parent0d2f2074cb64114fdd8aea5164e114d08d621f1b (diff)
downloadhdf5-daef205d04464c96d933727d1e97378cbfe094cf.zip
hdf5-daef205d04464c96d933727d1e97378cbfe094cf.tar.gz
hdf5-daef205d04464c96d933727d1e97378cbfe094cf.tar.bz2
[svn-r22122] Issue 7785 - Writing or reading many small chunks ran out of memory and caused seg fault. I added checks in two places to make sure the library returns error stack
when it fails to allocate memory. I didn't add any test to the test suite since there is no good way to test it. But I tested and verified the error stack by hand. Tested on jam, koala, ostrich.
Diffstat (limited to 'src/H5Dio.c')
-rw-r--r--src/H5Dio.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/H5Dio.c b/src/H5Dio.c
index 248ea9e..ef826fe 100644
--- a/src/H5Dio.c
+++ b/src/H5Dio.c
@@ -657,6 +657,7 @@ H5D_write(H5D_t *dataset, hid_t mem_type_id, const H5S_t *mem_space,
#endif /*H5_HAVE_PARALLEL*/
/* Call storage method's I/O initialization routine */
+ HDmemset(&fm, 0, sizeof(H5D_chunk_map_t));
if(io_info.layout_ops.io_init && (*io_info.layout_ops.io_init)(&io_info, &type_info, nelmts, file_space, mem_space, &fm) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "can't initialize I/O info")
io_op_init = TRUE;