Check for wrap context before unwrapping file VOL object in H5F__dest (#325)

This commit is contained in:
jhendersonHDF 2021-02-09 18:41:49 -06:00 committed by GitHub
parent bccf5b5c08
commit 52ac74689a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1602,8 +1602,16 @@ H5F__dest(H5F_t *f, hbool_t flush)
f->open_name = (char *)H5MM_xfree(f->open_name);
f->actual_name = (char *)H5MM_xfree(f->actual_name);
if (f->vol_obj) {
if (NULL == H5VL_object_unwrap(f->vol_obj))
void *vol_wrap_ctx = NULL;
/* If a VOL wrapping context is available, retrieve it
* and unwrap file VOL object
*/
if (H5CX_get_vol_wrap_ctx((void **)&vol_wrap_ctx) < 0)
HDONE_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "can't get VOL object wrap context")
if (vol_wrap_ctx && (NULL == H5VL_object_unwrap(f->vol_obj)))
HDONE_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "can't unwrap VOL object")
if (H5VL_free_object(f->vol_obj) < 0)
HDONE_ERROR(H5E_FILE, H5E_CANTDEC, FAIL, "unable to free VOL object")
f->vol_obj = NULL;