Fix gcc 9 build errors for make xcheck.

Message ID b982a153-3685-bf3f-8b14-77402a099f7e@linux.ibm.com
State Superseded
Headers

Commit Message

Stefan Liebler June 17, 2019, 6:35 a.m. UTC
  Hi,

this patch fixes the following gcc 9 warnings for "make xcheck":
-string/tst-strcasestr.c:
../include/bits/../../misc/bits/error.h:42:5: error: ‘%s’ directive 
argument is null [-Werror=format-overflow=]

-argp/argp-test.c:
argp-test.c:130:20: error: ‘%d’ directive writing between 1 and 11 bytes 
into a region of size 10 [-Werror=format-overflow=]
argp-test.c:130:19: note: directive argument in the range [-2147483648, 122]
argp-test.c:130:5: note: ‘sprintf’ output between 2 and 12 bytes into a 
destination of size 10

-nss/tst-field.c:
tst-field.c:52:7: error: ‘%s’ directive argument is null 
[-Werror=format-overflow=]

Bye
Stefan

ChangeLog:

	* string/test-strcasestr.c (check_result): Add NULL check.
	* nss/tst-field.c (check_rewrite): Likewise.
	* argp/argp-test.c (popt): Increase size of buf to 12.
  

Comments

Yann Droneaud June 17, 2019, 8:54 a.m. UTC | #1
Hi,

Le lundi 17 juin 2019 à 08:35 +0200, Stefan Liebler a écrit :
> 
> this patch fixes the following gcc 9 warnings for "make xcheck":
> -string/tst-strcasestr.c:
> ../include/bits/../../misc/bits/error.h:42:5: error: ‘%s’ directive 
> argument is null [-Werror=format-overflow=]
> 

This was reported as bug #24556

https://sourceware.org/bugzilla/show_bug.cgi?id=24556

Regards.
  

Patch

commit 4b7c870e47625e91f89258bd8e3cd3ca51787556
Author: Stefan Liebler <stli@linux.ibm.com>
Date:   Fri Jun 14 12:47:39 2019 +0200

    Fix gcc 9 build errors for make xcheck.
    
    This patch fixes the following gcc 9 warnings for "make xcheck":
    -string/tst-strcasestr.c:
    ../include/bits/../../misc/bits/error.h:42:5: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
    
    -argp/argp-test.c:
    argp-test.c:130:20: error: ‘%d’ directive writing between 1 and 11 bytes into a region of size 10 [-Werror=format-overflow=]
    argp-test.c:130:19: note: directive argument in the range [-2147483648, 122]
    argp-test.c:130:5: note: ‘sprintf’ output between 2 and 12 bytes into a destination of size 10
    
    -nss/tst-field.c:
    tst-field.c:52:7: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
    
    ChangeLog:
    
            * string/test-strcasestr.c (check_result): Add NULL check.
            * nss/tst-field.c (check_rewrite): Likewise.
            * argp/argp-test.c (popt): Increase size of buf to 12.

diff --git a/argp/argp-test.c b/argp/argp-test.c
index cb2976ddad..13e0c6df14 100644
--- a/argp/argp-test.c
+++ b/argp/argp-test.c
@@ -123,7 +123,7 @@  static const char doc[] = "Test program for argp."
 static void
 popt (int key, char *arg)
 {
-  char buf[10];
+  char buf[12];
   if (isprint (key))
     sprintf (buf, "%c", key);
   else
diff --git a/nss/tst-field.c b/nss/tst-field.c
index 23d2f2abf6..5c553e5f46 100644
--- a/nss/tst-field.c
+++ b/nss/tst-field.c
@@ -50,7 +50,7 @@  check_rewrite (const char *input, const char *expected)
   if (result != NULL && strcmp (result, expected) != 0)
     {
       printf ("FAIL: rewrite \"%s\" -> \"%s\", expected \"%s\"\n",
-	      input, result, expected);
+	      (input == NULL) ? "NULL" : input, result, expected);
       errors = true;
     }
   free (to_free);
diff --git a/string/test-strcasestr.c b/string/test-strcasestr.c
index 0a16f85dcd..1773581a3e 100644
--- a/string/test-strcasestr.c
+++ b/string/test-strcasestr.c
@@ -67,7 +67,7 @@  check_result (impl_t *impl, const char *s1, const char *s2,
   if (result != exp_result)
     {
       error (0, 0, "Wrong result in function %s %s %s", impl->name,
-	     result, exp_result);
+	     result, (exp_result == NULL) ? "NULL" : exp_result);
       ret = 1;
       return -1;
     }