diff options
author | Robb Matzke <matzke@llnl.gov> | 2000-10-31 16:18:34 (GMT) |
---|---|---|
committer | Robb Matzke <matzke@llnl.gov> | 2000-10-31 16:18:34 (GMT) |
commit | 3c623ea000f9535cda6a8d8df93f891549cee659 (patch) | |
tree | 7ad3ee0d27d7eba24dde06f87c03bba79812473a | |
parent | 7f7ab4a16398414999856c8402cb43f704cad044 (diff) | |
download | hdf5-3c623ea000f9535cda6a8d8df93f891549cee659.zip hdf5-3c623ea000f9535cda6a8d8df93f891549cee659.tar.gz hdf5-3c623ea000f9535cda6a8d8df93f891549cee659.tar.bz2 |
[svn-r2763] ./hdf5/src/H5F.c
* 2000-10-31 Robb Matzke <matzke@llnl.gov> (H5F_dest)
Do not call H5FL_FREE() if the root group
object is null. This fixes a bug in h5ls when that tool is given
a file which is not an hdf5 file.
-rw-r--r-- | src/H5F.c | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -806,6 +806,10 @@ H5F_new(H5F_file_t *shared, hid_t fcpl_id, hid_t fapl_id) * More careful about decrementing reference counts so they don't go * negative or wrap around to some huge value. Nothing happens if a * reference count is already zero. + * + * Robb Matzke, 2000-10-31 + * H5FL_FREE() aborts if called with a null pointer (unlike the + * original H5MM_free()). *------------------------------------------------------------------------- */ static herr_t @@ -821,8 +825,10 @@ H5F_dest(H5F_t *f) * Do not close the root group since we didn't count it, but free * the memory associated with it. */ - H5FL_FREE(H5G_t,f->shared->root_grp); - f->shared->root_grp=NULL; + if (f->shared->root_grp) { + H5FL_FREE(H5G_t,f->shared->root_grp); + f->shared->root_grp=NULL; + } if (H5AC_dest(f)) { HERROR(H5E_FILE, H5E_CANTINIT, "problems closing file"); ret_value = FAIL; /*but keep going*/ |