summaryrefslogtreecommitdiffstats
path: root/hl/src/H5LT.c
diff options
context:
space:
mode:
authorRaymond Lu <songyulu@hdfgroup.org>2009-04-24 21:13:20 (GMT)
committerRaymond Lu <songyulu@hdfgroup.org>2009-04-24 21:13:20 (GMT)
commitcdcd4a73058091fa1c5035bd81d1b057f1ab19d4 (patch)
treed63b77c9b836bc370f302d44ce8f1864aada003d /hl/src/H5LT.c
parent8dd1e72365158f9b82c624fa7fdd6340849111ab (diff)
downloadhdf5-cdcd4a73058091fa1c5035bd81d1b057f1ab19d4.zip
hdf5-cdcd4a73058091fa1c5035bd81d1b057f1ab19d4.tar.gz
hdf5-cdcd4a73058091fa1c5035bd81d1b057f1ab19d4.tar.bz2
[svn-r16859] I fixed some memory leak of H5LTdtype_to_text in the HL library. I fixed some test
verification, too. Tested on jam - simple change.
Diffstat (limited to 'hl/src/H5LT.c')
-rw-r--r--hl/src/H5LT.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/hl/src/H5LT.c b/hl/src/H5LT.c
index 7c073d6..e797d14 100644
--- a/hl/src/H5LT.c
+++ b/hl/src/H5LT.c
@@ -1792,6 +1792,7 @@ herr_t H5LTdtype_to_text(hid_t dtype, char *str, H5LT_lang_t lang_type, size_t *
if((ret = H5LT_dtype_to_text(dtype, &text_str, lang_type, &str_len, 1)) < 0)
goto out;
*len = strlen(text_str) + 1;
+ free(text_str);
} else if(len && str) {
if((ret = H5LT_dtype_to_text(dtype, &str, lang_type, len, 0)) < 0)
goto out;
@@ -2076,6 +2077,9 @@ next:
break;
}
case H5T_OPAQUE:
+ {
+ char *tag;
+
/* Print lead-in */
sprintf(*dt_str, "H5T_OPAQUE {\n");
indent += COL;
@@ -2085,7 +2089,12 @@ next:
strcat(*dt_str, tmp_str);
indentation(indent + COL, *dt_str);
- sprintf(tmp_str, "OPQ_TAG \"%s\";\n", H5Tget_tag(dtype));
+ tag = H5Tget_tag(dtype);
+ if(tag) {
+ sprintf(tmp_str, "OPQ_TAG \"%s\";\n", tag);
+ free(tag);
+ } else
+ sprintf(tmp_str, "OPQ_TAG \"\";\n");
strcat(*dt_str, tmp_str);
/* Print closing */
@@ -2094,6 +2103,7 @@ next:
strcat(*dt_str, "}");
break;
+ }
case H5T_ENUM:
{
hid_t super;