summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/H5Adeprec.c2
-rw-r--r--test/tattr.c4
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");