summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tools/lib/h5tools.c9
-rw-r--r--tools/lib/h5tools_str.c14
2 files changed, 15 insertions, 8 deletions
diff --git a/tools/lib/h5tools.c b/tools/lib/h5tools.c
index 3d96bed..bb951a0 100644
--- a/tools/lib/h5tools.c
+++ b/tools/lib/h5tools.c
@@ -311,7 +311,7 @@ h5tools_init(void)
if (!h5tools_init_g) {
/* register the error class */
- sprintf(lib_str, "%d.%d.%d",H5_VERS_MAJOR, H5_VERS_MINOR, H5_VERS_RELEASE);
+ HDsnprintf(lib_str, sizeof(lib_str), "%d.%d.%d",H5_VERS_MAJOR, H5_VERS_MINOR, H5_VERS_RELEASE);
H5TOOLS_INIT_ERROR()
@@ -3191,7 +3191,12 @@ h5tools_print_datatype(h5tools_str_t *buffer, const h5tool_format_t *info,
case H5T_OPAQUE:
h5tools_str_append(buffer, "\n");
h5tools_str_append(buffer, "H5T_OPAQUE;\n");
- h5tools_str_append(buffer, "OPAQUE_TAG \"%s\";\n", H5Tget_tag(type));
+ {
+ char *ttag = H5Tget_tag(type);
+ h5tools_str_append(buffer, "OPAQUE_TAG \"%s\";\n", ttag);
+ if (ttag)
+ HDfree(ttag);
+ }
break;
case H5T_COMPOUND:
diff --git a/tools/lib/h5tools_str.c b/tools/lib/h5tools_str.c
index ed13ac4..19d251b 100644
--- a/tools/lib/h5tools_str.c
+++ b/tools/lib/h5tools_str.c
@@ -281,12 +281,14 @@ h5tools_str_fmt(h5tools_str_t *str/*in,out*/, size_t start, const char *fmt)
* don't bother because we don't need a temporary copy.
*/
if (strchr(fmt, '%')) {
- if (str->len - start + 1 > sizeof(_temp)) {
- temp = malloc(str->len - start + 1);
+ size_t n = sizeof(_temp);
+ if (str->len - start + 1 > n) {
+ n = str->len - start + 1;
+ temp = malloc(n);
assert(temp);
}
- strcpy(temp, str->s + start);
+ HDstrncpy(temp, str->s + start, n);
}
/* Reset the output string and append a formatted version */
@@ -669,8 +671,8 @@ h5tools_str_sprint(h5tools_str_t *str, const h5tool_format_t *info, hid_t contai
/* Build default formats for long long types */
if (!fmt_llong[0]) {
- sprintf(fmt_llong, "%%%sd", H5_PRINTF_LL_WIDTH);
- sprintf(fmt_ullong, "%%%su", H5_PRINTF_LL_WIDTH);
+ snprintf(fmt_llong, sizeof(fmt_llong), "%%%sd", H5_PRINTF_LL_WIDTH);
+ snprintf(fmt_ullong, sizeof(fmt_ullong), "%%%su", H5_PRINTF_LL_WIDTH);
}
/* Append value depending on data type */
@@ -1252,7 +1254,7 @@ h5tools_escape(char *s/*in,out*/, size_t size)
break;
default:
if (!isprint(s[i])) {
- sprintf(octal, "\\%03o", (unsigned char) s[i]);
+ snprintf(octal, sizeof(octal), "\\%03o", (unsigned char) s[i]);
escape = octal;
}
else {