diff options
-rw-r--r-- | src/H5Adeprec.c | 2 | ||||
-rw-r--r-- | test/tattr.c | 4 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/H5Adeprec.c b/src/H5Adeprec.c index 9f888c8..85cef2f 100644 --- a/src/H5Adeprec.c +++ b/src/H5Adeprec.c @@ -312,6 +312,8 @@ H5Aget_num_attrs(hid_t loc_id) H5TRACE1("Is", "i", loc_id); /* check arguments */ + if(H5I_BADID == H5I_get_type(loc_id)) + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "bad location ID") if(H5I_FILE == H5I_get_type(loc_id) || H5I_ATTR == H5I_get_type(loc_id)) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "location is not valid for an attribute") if(NULL == (obj = H5I_object(loc_id))) diff --git a/test/tattr.c b/test/tattr.c index d448397..12350c3 100644 --- a/test/tattr.c +++ b/test/tattr.c @@ -3303,6 +3303,10 @@ test_attr_deprec(hid_t fcpl, hid_t fapl) CHECK(dataset, FAIL, "H5Dopen2"); + /* Get number of attributes with bad ID */ + ret = H5Aget_num_attrs(-1); + VERIFY(ret, FAIL, "H5Aget_num_attrs"); + /* Get number of attributes */ ret = H5Aget_num_attrs(dataset); VERIFY(ret, 1, "H5Aget_num_attrs"); |