diff options
author | jhendersonHDF <jhenderson@hdfgroup.org> | 2021-09-14 20:24:01 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-14 20:24:01 (GMT) |
commit | cd2ca91875be7d3ee98ab0131c32b9ee072509e5 (patch) | |
tree | bc73d8cd6acbe9f2f76dcbcc21374dc0b38e9908 /src/H5Dio.c | |
parent | 7c973deaf1e602cf165a39860e574a9b5468d164 (diff) | |
download | hdf5-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.c | 30 |
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 */ |