summaryrefslogtreecommitdiffstats
path: root/c++/src
diff options
context:
space:
mode:
authorBinh-Minh Ribler <bmribler@hdfgroup.org>2010-04-27 20:20:01 (GMT)
committerBinh-Minh Ribler <bmribler@hdfgroup.org>2010-04-27 20:20:01 (GMT)
commite331b971622ef4386b0cf2cdf468168df8ff03a9 (patch)
tree6d5b5eb66325bc3d608c0ac19d391583a17ea37b /c++/src
parent4966f07945ca826d5d1f2c2d19892fee508503a9 (diff)
downloadhdf5-e331b971622ef4386b0cf2cdf468168df8ff03a9.zip
hdf5-e331b971622ef4386b0cf2cdf468168df8ff03a9.tar.gz
hdf5-e331b971622ef4386b0cf2cdf468168df8ff03a9.tar.bz2
[svn-r18641] Description:
Added a null character to terminate a fixed-length string returned by H5Aread. Platforms tested: Linux/32 2.6 (jam) FreeBSD/64 6.3 (liberty)
Diffstat (limited to 'c++/src')
-rw-r--r--c++/src/H5Attribute.cpp7
1 files changed, 2 insertions, 5 deletions
diff --git a/c++/src/H5Attribute.cpp b/c++/src/H5Attribute.cpp
index cf53526..27061de 100644
--- a/c++/src/H5Attribute.cpp
+++ b/c++/src/H5Attribute.cpp
@@ -423,18 +423,15 @@ void Attribute::p_read_fixed_len(const DataType& mem_type, H5std_string& strg) c
// If there is data, allocate buffer and read it.
if (attr_size > 0)
{
- char *strg_C = NULL;
-
- strg_C = new char [(size_t)attr_size+1];
+ char *strg_C = new char[(size_t)attr_size+1];
herr_t ret_value = H5Aread(id, mem_type.getId(), strg_C);
-
if( ret_value < 0 )
{
delete []strg_C; // de-allocate for fixed-len string
throw AttributeIException("Attribute::read", "H5Aread failed");
}
-
// Get string from the C char* and release resource allocated locally
+ strg_C[attr_size] = '\0';
strg = strg_C;
delete []strg_C;
}