[4.3.x] romio: test: fix bad snprintf arguments #7640
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Even though there can not be a buffer overflow as the string is properly sized, noncontig_coll2 fails when built with -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 : ----
FAIL: noncontig_coll2
Thread 1 "noncontig_coll2" received signal SIGABRT, Aborted. 0x00007ffff709c5fc in __pthread_kill_implementation () from /lib64/libc.so.6 (gdb) bt
#0 0x00007ffff709c5fc in __pthread_kill_implementation ()
from /lib64/libc.so.6
#1 0x00007ffff7042106 in raise () from /lib64/libc.so.6
#2 0x00007ffff702938b in abort () from /lib64/libc.so.6
#3 0x00007ffff702a3ab in __libc_message_impl.cold () from /lib64/libc.so.6
#4 0x00007ffff712b4fb in __fortify_fail () from /lib64/libc.so.6
#5 0x00007ffff712adc6 in __chk_fail () from /lib64/libc.so.6
#6 0x00007ffff712c8f5 in __snprintf_chk () from /lib64/libc.so.6
#7 0x000000000040275e in snprintf (__s=0x4aafee "", __n=,
__fmt=0x404077 "%s,") at /usr/include/bits/stdio2.h:68
#8 default_str (mynod=, len=61, array=0x59fca0,
dest=0x4aafd0 "hostname,")
at src/mpi/romio/test/noncontig_coll2.c:189
#9 main (argc=, argv=)
at src/mpi/romio/test/noncontig_coll2.c:330
This is due to the len parameter of snprintf not being updated as we advance in the string.
Fix this issue by introducing a remaining len var that contains the exact amount of bytes left.
Patch is already applied in main. Backporting to 4.3.x as discussed in #7596