Source
1004
1004
H5G_stab_valid(H5O_loc_t *grp_oloc, hid_t dxpl_id, H5O_stab_t *alt_stab)
1005
1005
{
1006
1006
H5O_stab_t stab; /* Current symbol table */
1007
1007
H5HL_t *heap = NULL; /* Pointer to local heap */
1008
1008
hbool_t changed = FALSE; /* Whether stab has been modified */
1009
1009
herr_t ret_value = SUCCEED; /* Return value */
1010
1010
1011
1011
FUNC_ENTER_NOAPI(H5G_stab_valid, FAIL)
1012
1012
1013
1013
/* Read the symbol table message */
1014
-
H5O_msg_read(grp_oloc, H5O_STAB_ID, &stab, dxpl_id);
1014
+
if(NULL == H5O_msg_read(grp_oloc, H5O_STAB_ID, &stab, dxpl_id))
1015
+
HGOTO_ERROR(H5E_SYM, H5E_BADMESG, FAIL, "unable to read symbol table message");
1015
1016
1016
1017
/* Check if the symbol table message's b-tree address is valid */
1017
1018
if(H5B_valid(grp_oloc->file, dxpl_id, H5B_SNODE, stab.btree_addr) < 0) {
1018
1019
/* Address is invalid, try the b-tree address in the alternate symbol
1019
1020
* table message */
1020
1021
if(!alt_stab || H5B_valid(grp_oloc->file, dxpl_id, H5B_SNODE, alt_stab->btree_addr) < 0)
1021
1022
HGOTO_ERROR(H5E_BTREE, H5E_NOTFOUND, FAIL, "unable to locate b-tree")
1022
1023
else {
1023
1024
/* The alternate symbol table's b-tree address is valid. Adjust the
1024
1025
* symbol table message in the group. */