summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSean McBride <sean@rogue-research.com>2022-06-22 18:58:18 (GMT)
committerGitHub <noreply@github.com>2022-06-22 18:58:18 (GMT)
commitc064d3481b582653c1e0d0043a17527fd73e8c4d (patch)
tree396a5e13954c19b803aa80465938cde15140b176 /src
parentd6f05069c1a3642bbebf7ec27e7df809f0675f13 (diff)
downloadhdf5-c064d3481b582653c1e0d0043a17527fd73e8c4d.zip
hdf5-c064d3481b582653c1e0d0043a17527fd73e8c4d.tar.gz
hdf5-c064d3481b582653c1e0d0043a17527fd73e8c4d.tar.bz2
sprintf to snprintf (#1815)
* Straightforward conversion of sprintf to the safer snprintf * Trickier conversion of sprintf to safer snprintf This involved minor changes to private function signatures to take the size of the buffer. * Committing clang-format changes Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Diffstat (limited to 'src')
-rw-r--r--src/H5Cmpio.c4
-rw-r--r--src/H5Tdbg.c2
-rw-r--r--src/H5Z.c2
-rw-r--r--src/H5private.h2
-rw-r--r--src/H5timer.c39
5 files changed, 25 insertions, 24 deletions
diff --git a/src/H5Cmpio.c b/src/H5Cmpio.c
index a0cc6bb..a746e54 100644
--- a/src/H5Cmpio.c
+++ b/src/H5Cmpio.c
@@ -199,7 +199,7 @@ H5C_apply_candidate_list(H5F_t *f, H5C_t *cache_ptr, unsigned num_candidates, ha
HDmemset(tbl_buf, 0, sizeof(tbl_buf));
- HDsprintf(&(tbl_buf[0]), "candidate list = ");
+ HDsnprintf(tbl_buf, sizeof(tbl_buf), "candidate list = ");
for (u = 0; u < num_candidates; u++)
HDsprintf(&(tbl_buf[HDstrlen(tbl_buf)]), " 0x%llx", (long long)(*(candidates_list_ptr + u)));
HDsprintf(&(tbl_buf[HDstrlen(tbl_buf)]), "\n");
@@ -266,7 +266,7 @@ H5C_apply_candidate_list(H5F_t *f, H5C_t *cache_ptr, unsigned num_candidates, ha
#if H5C_APPLY_CANDIDATE_LIST__DEBUG
for (u = 0; u < 1024; u++)
tbl_buf[u] = '\0';
- HDsprintf(&(tbl_buf[0]), "candidate assignment table = ");
+ HDsnprintf(tbl_buf, sizeof(tbl_buf), "candidate assignment table = ");
for (u = 0; u <= (unsigned)mpi_size; u++)
HDsprintf(&(tbl_buf[HDstrlen(tbl_buf)]), " %u", candidate_assignment_table[u]);
HDsprintf(&(tbl_buf[HDstrlen(tbl_buf)]), "\n");
diff --git a/src/H5Tdbg.c b/src/H5Tdbg.c
index 613aa60..515b710 100644
--- a/src/H5Tdbg.c
+++ b/src/H5Tdbg.c
@@ -116,7 +116,7 @@ H5T__print_stats(H5T_path_t H5_ATTR_UNUSED *path, int H5_ATTR_UNUSED *nprint /*i
else
nbytes = 0;
nbytes *= path->stats.nelmts;
- H5_bandwidth(bandwidth, (double)nbytes, path->stats.times.elapsed);
+ H5_bandwidth(bandwidth, sizeof(bandwidth), (double)nbytes, path->stats.times.elapsed);
HDfprintf(H5DEBUG(T), " %-16s %10" PRIdHSIZE " %10u %8s %8s %8s %10s\n", path->name,
path->stats.nelmts, path->stats.ncalls, timestrs.user, timestrs.system, timestrs.elapsed,
bandwidth);
diff --git a/src/H5Z.c b/src/H5Z.c
index d7ccbb4..23eb731 100644
--- a/src/H5Z.c
+++ b/src/H5Z.c
@@ -166,7 +166,7 @@ H5Z_term_package(void)
* units of `B/s', `kB/s', `MB/s', `GB/s', or `TB/s' or
* the word `Inf' if the elapsed time is zero.
*/
- H5_bandwidth(bandwidth, (double)(H5Z_stat_table_g[i].stats[dir].total),
+ H5_bandwidth(bandwidth, sizeof(bandwidth), (double)(H5Z_stat_table_g[i].stats[dir].total),
H5Z_stat_table_g[i].stats[dir].times.elapsed);
/* Print the statistics */
diff --git a/src/H5private.h b/src/H5private.h
index 974f26c..c8653b7 100644
--- a/src/H5private.h
+++ b/src/H5private.h
@@ -550,7 +550,7 @@ typedef struct {
} H5_timer_t;
/* Returns library bandwidth as a pretty string */
-H5_DLL void H5_bandwidth(char *buf /*out*/, double nbytes, double nseconds);
+H5_DLL void H5_bandwidth(char *buf /*out*/, size_t bufsize, double nbytes, double nseconds);
/* Timer functionality */
H5_DLL time_t H5_now(void);
diff --git a/src/H5timer.c b/src/H5timer.c
index b5dba97..83fd243 100644
--- a/src/H5timer.c
+++ b/src/H5timer.c
@@ -96,7 +96,7 @@
*-------------------------------------------------------------------------
*/
void
-H5_bandwidth(char *buf /*out*/, double nbytes, double nseconds)
+H5_bandwidth(char *buf /*out*/, size_t bufsize, double nbytes, double nseconds)
{
double bw;
@@ -107,35 +107,35 @@ H5_bandwidth(char *buf /*out*/, double nbytes, double nseconds)
if (H5_DBL_ABS_EQUAL(bw, 0.0))
HDstrcpy(buf, "0.000 B/s");
else if (bw < 1.0)
- HDsprintf(buf, "%10.4e", bw);
+ HDsnprintf(buf, bufsize, "%10.4e", bw);
else if (bw < (double)H5_KB) {
- HDsprintf(buf, "%05.4f", bw);
+ HDsnprintf(buf, bufsize, "%05.4f", bw);
HDstrcpy(buf + 5, " B/s");
}
else if (bw < (double)H5_MB) {
- HDsprintf(buf, "%05.4f", bw / (double)H5_KB);
+ HDsnprintf(buf, bufsize, "%05.4f", bw / (double)H5_KB);
HDstrcpy(buf + 5, " kB/s");
}
else if (bw < (double)H5_GB) {
- HDsprintf(buf, "%05.4f", bw / (double)H5_MB);
+ HDsnprintf(buf, bufsize, "%05.4f", bw / (double)H5_MB);
HDstrcpy(buf + 5, " MB/s");
}
else if (bw < (double)H5_TB) {
- HDsprintf(buf, "%05.4f", bw / (double)H5_GB);
+ HDsnprintf(buf, bufsize, "%05.4f", bw / (double)H5_GB);
HDstrcpy(buf + 5, " GB/s");
}
else if (bw < (double)H5_PB) {
- HDsprintf(buf, "%05.4f", bw / (double)H5_TB);
+ HDsnprintf(buf, bufsize, "%05.4f", bw / (double)H5_TB);
HDstrcpy(buf + 5, " TB/s");
}
else if (bw < (double)H5_EB) {
- HDsprintf(buf, "%05.4f", bw / (double)H5_PB);
+ HDsnprintf(buf, bufsize, "%05.4f", bw / (double)H5_PB);
HDstrcpy(buf + 5, " PB/s");
}
else {
- HDsprintf(buf, "%10.4e", bw);
+ HDsnprintf(buf, bufsize, "%10.4e", bw);
if (HDstrlen(buf) > 10)
- HDsprintf(buf, "%10.3e", bw);
+ HDsnprintf(buf, bufsize, "%10.3e", bw);
} /* end else-if */
} /* end else */
} /* end H5_bandwidth() */
@@ -627,30 +627,31 @@ H5_timer_get_time_string(double seconds)
* (name? round_up_size? ?)
*/
if (seconds < 0.0)
- HDsprintf(s, "N/A");
+ HDsnprintf(s, H5TIMER_TIME_STRING_LEN, "N/A");
else if (H5_DBL_ABS_EQUAL(0.0, seconds))
- HDsprintf(s, "0.0 s");
+ HDsnprintf(s, H5TIMER_TIME_STRING_LEN, "0.0 s");
else if (seconds < 1.0E-6)
/* t < 1 us, Print time in ns */
- HDsprintf(s, "%.f ns", seconds * 1.0E9);
+ HDsnprintf(s, H5TIMER_TIME_STRING_LEN, "%.f ns", seconds * 1.0E9);
else if (seconds < 1.0E-3)
/* t < 1 ms, Print time in us */
- HDsprintf(s, "%.1f us", seconds * 1.0E6);
+ HDsnprintf(s, H5TIMER_TIME_STRING_LEN, "%.1f us", seconds * 1.0E6);
else if (seconds < 1.0)
/* t < 1 s, Print time in ms */
- HDsprintf(s, "%.1f ms", seconds * 1.0E3);
+ HDsnprintf(s, H5TIMER_TIME_STRING_LEN, "%.1f ms", seconds * 1.0E3);
else if (seconds < H5_SEC_PER_MIN)
/* t < 1 m, Print time in s */
- HDsprintf(s, "%.2f s", seconds);
+ HDsnprintf(s, H5TIMER_TIME_STRING_LEN, "%.2f s", seconds);
else if (seconds < H5_SEC_PER_HOUR)
/* t < 1 h, Print time in m and s */
- HDsprintf(s, "%.f m %.f s", minutes, remainder_sec);
+ HDsnprintf(s, H5TIMER_TIME_STRING_LEN, "%.f m %.f s", minutes, remainder_sec);
else if (seconds < H5_SEC_PER_DAY)
/* t < 1 d, Print time in h, m and s */
- HDsprintf(s, "%.f h %.f m %.f s", hours, minutes, remainder_sec);
+ HDsnprintf(s, H5TIMER_TIME_STRING_LEN, "%.f h %.f m %.f s", hours, minutes, remainder_sec);
else
/* Print time in d, h, m and s */
- HDsprintf(s, "%.f d %.f h %.f m %.f s", days, hours, minutes, remainder_sec);
+ HDsnprintf(s, H5TIMER_TIME_STRING_LEN, "%.f d %.f h %.f m %.f s", days, hours, minutes,
+ remainder_sec);
return s;
} /* end H5_timer_get_time_string() */