diff options
author | Raymond Lu <songyulu@hdfgroup.org> | 2009-04-24 21:13:20 (GMT) |
---|---|---|
committer | Raymond Lu <songyulu@hdfgroup.org> | 2009-04-24 21:13:20 (GMT) |
commit | cdcd4a73058091fa1c5035bd81d1b057f1ab19d4 (patch) | |
tree | d63b77c9b836bc370f302d44ce8f1864aada003d /hl/src | |
parent | 8dd1e72365158f9b82c624fa7fdd6340849111ab (diff) | |
download | hdf5-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')
-rw-r--r-- | hl/src/H5LT.c | 12 |
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; |