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. */