This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Fix truncation warnings in posix/tst-glob_symlinks.c [committed]
- From: Joseph Myers <joseph at codesourcery dot com>
- To: <libc-alpha at sourceware dot org>
- Date: Mon, 18 Dec 2017 22:54:37 +0000
- Subject: Fix truncation warnings in posix/tst-glob_symlinks.c [committed]
- Authentication-results: sourceware.org; auth=none
The test posix/tst-glob_symlinks.c fails to build with GCC mainline:
tst-glob_symlinks.c: In function 'do_test':
tst-glob_symlinks.c:124:30: error: 'snprintf' output may be truncated before the last format character [-Werror=format-truncation=]
snprintf (buf, sizeof buf, "%s?", dangling_link);
^~~~~
tst-glob_symlinks.c:124:3: note: 'snprintf' output between 2 and 4097 bytes into a destination of size 4096
snprintf (buf, sizeof buf, "%s?", dangling_link);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tst-glob_symlinks.c:128:30: error: 'snprintf' output may be truncated before the last format character [-Werror=format-truncation=]
snprintf (buf, sizeof buf, "%s*", dangling_link);
^~~~~
tst-glob_symlinks.c:128:3: note: 'snprintf' output between 2 and 4097 bytes into a destination of size 4096
snprintf (buf, sizeof buf, "%s*", dangling_link);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This patch fixes the test to avoid such truncation warnings by
increasing the buffer in question by one byte, to ensure it can hold
any possible result of %s? or %s* formats where %s comes from a buffer
of size PATH_MAX.
Tested compilation with build-many-glibcs.py for aarch64-linux-gnu.
Committed.
2017-12-18 Joseph Myers <joseph@codesourcery.com>
* posix/tst-glob_symlinks.c (do_test): Increase size of buf.
diff --git a/posix/tst-glob_symlinks.c b/posix/tst-glob_symlinks.c
index 5c4b4ec..3a86f4c 100644
--- a/posix/tst-glob_symlinks.c
+++ b/posix/tst-glob_symlinks.c
@@ -94,7 +94,7 @@ do_prepare (int argc, char *argv[])
static int
do_test (void)
{
- char buf[PATH_MAX];
+ char buf[PATH_MAX + 1];
glob_t gl;
TEST_VERIFY_EXIT (glob (valid_link, 0, NULL, &gl) == 0);
--
Joseph S. Myers
joseph@codesourcery.com