diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2008-08-19 19:37:35 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2008-08-19 19:37:35 (GMT) |
commit | a1f3523478a1ae83db99bae92b9d677915abfc48 (patch) | |
tree | 14ddbe8dce3a54d1b82eb738431373928aed1021 | |
parent | a59d91d19251163b0e9cfeb351f8a069d6e6fd64 (diff) | |
download | hdf5-a1f3523478a1ae83db99bae92b9d677915abfc48.zip hdf5-a1f3523478a1ae83db99bae92b9d677915abfc48.tar.gz hdf5-a1f3523478a1ae83db99bae92b9d677915abfc48.tar.bz2 |
[svn-r15488] Description:
Fix bug where library could core dump when an invalid location ID was
passed to H5Giterate() (and add test for this case).
Tested on:
Mac OS X/32 10.5.4 (amazon)
Too minor to require h5committest
-rw-r--r-- | src/H5G.c | 2 | ||||
-rw-r--r-- | test/links.c | 14 |
2 files changed, 15 insertions, 1 deletions
@@ -1649,7 +1649,7 @@ H5G_iterate(hid_t loc_id, const char *group_name, { H5G_loc_t loc; /* Location of parent for group */ hid_t gid = -1; /* ID of group to iterate over */ - H5G_t *grp; /* Pointer to group data structure to iterate over */ + H5G_t *grp = NULL; /* Pointer to group data structure to iterate over */ H5G_iter_appcall_ud_t udata; /* User data for callback */ herr_t ret_value; /* Return value */ diff --git a/test/links.c b/test/links.c index 0d89fd2..c49d966 100644 --- a/test/links.c +++ b/test/links.c @@ -9734,6 +9734,20 @@ link_iterate_old_check(hid_t group_id, H5_iter_order_t order, } H5E_END_TRY; if(ret >= 0) TEST_ERROR + /* Check for iteration w/bad location ID */ + skip = 0; + H5E_BEGIN_TRY { + ret = H5Literate((-1), H5_INDEX_NAME, order, &skip, link_iterate_fail_cb, NULL); + } H5E_END_TRY; + if(ret >= 0) TEST_ERROR + +#ifndef H5_NO_DEPRECATED_SYMBOLS + H5E_BEGIN_TRY { + ret = H5Giterate((-1), ".", &gskip, group_iterate_old_cb, iter_info); + } H5E_END_TRY; + if(ret >= 0) TEST_ERROR +#endif /* H5_NO_DEPRECATED_SYMBOLS */ + /* Success */ return(0); |