diff options
author | Joseph Myers <joseph@codesourcery.com> | 2018-11-01 17:20:27 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2018-11-01 17:20:27 +0000 |
commit | eac4405af00464a4268cfd13b25224901c193988 (patch) | |
tree | b4ce145b9bceaf11d3a139ab8755aabad157a97f | |
parent | 6f30e59fc9d9945a225de9b2c7b260ff64e72140 (diff) | |
download | glibc-eac4405af00464a4268cfd13b25224901c193988.zip glibc-eac4405af00464a4268cfd13b25224901c193988.tar.gz glibc-eac4405af00464a4268cfd13b25224901c193988.tar.bz2 |
Avoid printf ("%s", NULL) in posix/bug-regex22.c.
Building posix/bug-regex22.c fails with GCC mainline because of
-Wformat-overflow= warnings for NULL arguments to %s formats.
This is *not* testing how glibc handles such format arguments; in the
context of the messages in question it makes no sense to pass NULL to
such a %s format (the code passes s, inside "if (s == NULL)"). So
this patch changes the code not to pass such a format argument at all
(which means the string passed is constant, so no need to use printf
at all - however, there are two separate tests here with different
length arguments passed to re_compile_pattern, so it *does* make sense
to make the strings used different so that in the event of failure
it's clear which one of the tests failed).
Tested with build-many-glibcs.py with GCC mainline for
aarch64-linux-gnu.
* posix/bug-regex22.c (main): Use puts with distinct error
messages for unexpected success of re_compile_pattern, not printf
with NULL argument to %s.
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | posix/bug-regex22.c | 8 |
2 files changed, 8 insertions, 4 deletions
@@ -1,5 +1,9 @@ 2018-11-01 Joseph Myers <joseph@codesourcery.com> + * posix/bug-regex22.c (main): Use puts with distinct error + messages for unexpected success of re_compile_pattern, not printf + with NULL argument to %s. + * stdio-common/bug22.c: Include <libc-diag.h>. (do_test): Disable -Wformat-overflow= warnings around fprintf calls outputting more than INT_MAX characters. diff --git a/posix/bug-regex22.c b/posix/bug-regex22.c index 2c561d8..73b222c 100644 --- a/posix/bug-regex22.c +++ b/posix/bug-regex22.c @@ -99,8 +99,8 @@ main (void) s = re_compile_pattern ("[[:DIGIT:]]", 11, &re); if (s == NULL) { - printf ("compilation of \"[[:DIGIT:]]\" pattern unexpectedly succeeded: %s\n", - s); + puts ("compilation of \"[[:DIGIT:]]\" pattern unexpectedly succeeded: " + "length 11"); result = 1; } @@ -109,8 +109,8 @@ main (void) s = re_compile_pattern ("[[:DIGIT:]]", 2, &re); if (s == NULL) { - printf ("compilation of \"[[:DIGIT:]]\" pattern unexpectedly succeeded: %s\n", - s); + puts ("compilation of \"[[:DIGIT:]]\" pattern unexpectedly succeeded: " + "length 2"); result = 1; } |