summaryrefslogtreecommitdiffstats
path: root/src/H5Oattr.c
diff options
context:
space:
mode:
authorDana Robinson <derobins@hdfgroup.org>2019-02-19 22:49:20 (GMT)
committerDana Robinson <derobins@hdfgroup.org>2019-02-19 22:49:20 (GMT)
commit32ea4e72f1e85e0e7ff6457aae0bd210e56d1cad (patch)
treecfaf3296e7dddf11bba56dc00b78327c85eb63d0 /src/H5Oattr.c
parent536a32c59be69f9ae75604a31d0ec34c57cf9f00 (diff)
parentb901552b1ca315db8b27ea090011f2f557491d46 (diff)
downloadhdf5-32ea4e72f1e85e0e7ff6457aae0bd210e56d1cad.zip
hdf5-32ea4e72f1e85e0e7ff6457aae0bd210e56d1cad.tar.gz
hdf5-32ea4e72f1e85e0e7ff6457aae0bd210e56d1cad.tar.bz2
Merge branch 'develop' into c_stdlib_posix_call_cleanup
Diffstat (limited to 'src/H5Oattr.c')
-rw-r--r--src/H5Oattr.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/H5Oattr.c b/src/H5Oattr.c
index c93bf32..c420046 100644
--- a/src/H5Oattr.c
+++ b/src/H5Oattr.c
@@ -176,7 +176,12 @@ H5O_attr_decode(H5F_t *f, H5O_t *open_oh, unsigned H5_ATTR_UNUSED mesg_flags,
/* Decode and store the name */
if(NULL == (attr->shared->name = H5MM_strdup((const char *)p)))
- HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed")
+ HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed")
+
+ /* Make an attempt to detect corrupted name or name length - HDFFV-10588 */
+ if(name_len != (HDstrlen(attr->shared->name) + 1))
+ HGOTO_ERROR(H5E_ATTR, H5E_CANTDECODE, NULL, "attribute name has different length than stored length")
+
if(attr->shared->version < H5O_ATTR_VERSION_2)
p += H5O_ALIGN_OLD(name_len); /* advance the memory pointer */
else