diff options
author | Albert Cheng <acheng@hdfgroup.org> | 2006-10-25 00:02:56 (GMT) |
---|---|---|
committer | Albert Cheng <acheng@hdfgroup.org> | 2006-10-25 00:02:56 (GMT) |
commit | 2104bb380da40cd8ceae6277a297dd0ed35a618f (patch) | |
tree | 66fc27a24fcff792c64de6563990b78b09cc2ffe /src/H5FD.c | |
parent | 5975624f97d4d8f8075e2afa8cdc1c67c6d224b0 (diff) | |
download | hdf5-2104bb380da40cd8ceae6277a297dd0ed35a618f.zip hdf5-2104bb380da40cd8ceae6277a297dd0ed35a618f.tar.gz hdf5-2104bb380da40cd8ceae6277a297dd0ed35a618f.tar.bz2 |
[svn-r12809] Purpose:
Bug fix.
Description:
H5FD_get_vfd_handle() would return okay even if an VFD did not have the
get_vfd_handle callback function defined.
Solution:
Return failure if get_vfd_handle function is not defined.
Tested:
in heping and copper.
Diffstat (limited to 'src/H5FD.c')
-rw-r--r-- | src/H5FD.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -3783,8 +3783,10 @@ herr_t H5FD_get_vfd_handle(H5FD_t *file, hid_t fapl, void** file_handle) FUNC_ENTER_NOAPI(H5FD_get_vfd_handle, FAIL) assert(file_handle); - if(file->cls->get_handle && ((ret_value=file->cls->get_handle(file, fapl, file_handle)) < 0)) - HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "can't get file handle for file driver") + if(NULL==file->cls->get_handle) + HGOTO_ERROR(H5E_VFL, H5E_UNSUPPORTED, NULL, "file driver has no `get_vfd_handle' method"); + if((ret_value=file->cls->get_handle(file, fapl, file_handle)) < 0) + HGOTO_ERROR(H5E_FILE, H5E_CANTGET, FAIL, "can't get file handle for file driver"); done: FUNC_LEAVE_NOAPI(ret_value) |