From: Joseph Myers Date: Mon, 18 Dec 2017 22:54:01 +0000 (+0000) Subject: Fix truncation warnings in posix/tst-glob_symlinks.c. X-Git-Tag: glibc-2.27~254 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5983df320af003a10ab2b965db1eecaca92c7056;p=thirdparty%2Fglibc.git Fix truncation warnings in posix/tst-glob_symlinks.c. 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. * posix/tst-glob_symlinks.c (do_test): Increase size of buf. --- diff --git a/ChangeLog b/ChangeLog index f90ddb5bd8b..a444183198b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2017-12-18 Joseph Myers + * posix/tst-glob_symlinks.c (do_test): Increase size of buf. + * string/tester.c (test_strncat): Also disable -Warray-bounds warnings for two tests. diff --git a/posix/tst-glob_symlinks.c b/posix/tst-glob_symlinks.c index 5c4b4ecf4a4..3a86f4c8cc9 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);