summaryrefslogtreecommitdiffstats
path: root/src/H5Dio.c
diff options
context:
space:
mode:
authorjhendersonHDF <jhenderson@hdfgroup.org>2021-09-14 20:24:01 (GMT)
committerGitHub <noreply@github.com>2021-09-14 20:24:01 (GMT)
commitcd2ca91875be7d3ee98ab0131c32b9ee072509e5 (patch)
treebc73d8cd6acbe9f2f76dcbcc21374dc0b38e9908 /src/H5Dio.c
parent7c973deaf1e602cf165a39860e574a9b5468d164 (diff)
downloadhdf5-cd2ca91875be7d3ee98ab0131c32b9ee072509e5.zip
hdf5-cd2ca91875be7d3ee98ab0131c32b9ee072509e5.tar.gz
hdf5-cd2ca91875be7d3ee98ab0131c32b9ee072509e5.tar.bz2
Fix several warnings (#720)
Diffstat (limited to 'src/H5Dio.c')
-rw-r--r--src/H5Dio.c30
1 files changed, 21 insertions, 9 deletions
diff --git a/src/H5Dio.c b/src/H5Dio.c
index d1861c4..6bd4666 100644
--- a/src/H5Dio.c
+++ b/src/H5Dio.c
@@ -856,28 +856,40 @@ H5D__ioinfo_adjust(H5D_io_info_t *io_info, const H5D_t *dset, const H5S_t *file_
for (cause = 1, idx = 0;
(cause < H5D_MPIO_NO_COLLECTIVE_MAX_CAUSE) && (idx < cause_strings_len);
cause <<= 1, idx++) {
- size_t cause_strlen = HDstrlen(cause_strings[idx]);
-
if (cause & local_no_collective_cause) {
+ size_t local_buffer_space = sizeof(local_no_collective_cause_string) -
+ HDstrlen(local_no_collective_cause_string) - 1;
+
/* Check if there were any previous error messages included. If so, prepend a
* semicolon to separate the messages.
*/
- if (local_error_message_previously_written)
- HDstrncat(local_no_collective_cause_string, "; ", 2);
+ if (local_buffer_space && local_error_message_previously_written) {
+ HDstrncat(local_no_collective_cause_string, "; ", local_buffer_space);
+ local_buffer_space -= MIN(local_buffer_space, 2);
+ }
- HDstrncat(local_no_collective_cause_string, cause_strings[idx], cause_strlen);
+ if (local_buffer_space)
+ HDstrncat(local_no_collective_cause_string, cause_strings[idx],
+ local_buffer_space);
local_error_message_previously_written = TRUE;
} /* end if */
if (cause & global_no_collective_cause) {
+ size_t global_buffer_space = sizeof(global_no_collective_cause_string) -
+ HDstrlen(global_no_collective_cause_string) - 1;
+
/* Check if there were any previous error messages included. If so, prepend a
* semicolon to separate the messages.
*/
- if (global_error_message_previously_written)
- HDstrncat(global_no_collective_cause_string, "; ", 2);
-
- HDstrncat(global_no_collective_cause_string, cause_strings[idx], cause_strlen);
+ if (global_buffer_space && global_error_message_previously_written) {
+ HDstrncat(global_no_collective_cause_string, "; ", global_buffer_space);
+ global_buffer_space -= MIN(global_buffer_space, 2);
+ }
+
+ if (global_buffer_space)
+ HDstrncat(global_no_collective_cause_string, cause_strings[idx],
+ global_buffer_space);
global_error_message_previously_written = TRUE;
} /* end if */