[v5,04/12] tests: fix warn unused result on asprintf calls

Message ID 20230601142747.104444-4-fberat@redhat.com
State Superseded
Headers
Series [v5,01/12] catgets/gencat.c: fix warn unused result |

Commit Message

Frederic Berat June 1, 2023, 2:27 p.m. UTC
  When enabling _FORTIFY_SOURCE, some functions now lead to warnings when
their result is not checked.
---
Changes since v4:
 - Properly use xasprintf in all cases in posix/tst-execlp2.c

 argp/argp-test.c           |  8 +++++---
 posix/tst-execl2.c         |  8 ++------
 posix/tst-execle2.c        |  8 ++------
 posix/tst-execlp2.c        | 10 +++-------
 posix/tst-execv2.c         |  8 ++------
 posix/tst-execve2.c        |  8 ++------
 posix/tst-execvp2.c        | 17 ++++-------------
 stdio-common/bug5.c        |  4 +++-
 stdio-common/test-fwrite.c |  4 +++-
 stdio-common/tst-fseek.c   |  5 ++---
 10 files changed, 28 insertions(+), 52 deletions(-)
  

Comments

Siddhesh Poyarekar June 1, 2023, 4:52 p.m. UTC | #1
On 2023-06-01 10:27, Frédéric Bérat wrote:
> When enabling _FORTIFY_SOURCE, some functions now lead to warnings when
> their result is not checked.
> ---
> Changes since v4:
>   - Properly use xasprintf in all cases in posix/tst-execlp2.c
> 
>   argp/argp-test.c           |  8 +++++---
>   posix/tst-execl2.c         |  8 ++------
>   posix/tst-execle2.c        |  8 ++------
>   posix/tst-execlp2.c        | 10 +++-------
>   posix/tst-execv2.c         |  8 ++------
>   posix/tst-execve2.c        |  8 ++------
>   posix/tst-execvp2.c        | 17 ++++-------------
>   stdio-common/bug5.c        |  4 +++-
>   stdio-common/test-fwrite.c |  4 +++-
>   stdio-common/tst-fseek.c   |  5 ++---
>   10 files changed, 28 insertions(+), 52 deletions(-)
> 
> diff --git a/argp/argp-test.c b/argp/argp-test.c
> index c7e20f6235..cd69c81b1a 100644
> --- a/argp/argp-test.c
> +++ b/argp/argp-test.c
> @@ -25,6 +25,8 @@
>   #include <string.h>
>   #include <argp.h>
>   
> +#include <support/support.h>
> +
>   const char *argp_program_version = "argp-test 1.0";
>   
>   struct argp_option sub_options[] =
> @@ -178,12 +180,12 @@ help_filter (int key, const char *text, void *input)
>     if (key == ARGP_KEY_HELP_POST_DOC && text)
>       {
>         time_t now = time (0);
> -      asprintf (&new_text, text, ctime (&now));
> +      new_text = xasprintf (text, ctime (&now));
>       }
>     else if (key == 'f')
>       /* Show the default for the --foonly option.  */
> -    asprintf (&new_text, "%s (ZOT defaults to %x)",
> -	      text, params->foonly_default);
> +    new_text = xasprintf ("%s (ZOT defaults to %x)",
> +		          text, params->foonly_default);
>     else
>       new_text = (char *)text;
>   
> diff --git a/posix/tst-execl2.c b/posix/tst-execl2.c
> index 5b74959ef8..d2f4453ad8 100644
> --- a/posix/tst-execl2.c
> +++ b/posix/tst-execl2.c
> @@ -18,12 +18,8 @@ prepare (int argc, char *argv[])
>   {
>     char *buf;
>     int off;
> -  asprintf (&buf, "cp %s %n%s-copy", argv[0], &off, argv[0]);
> -  if (buf == NULL)
> -    {
> -      puts ("asprintf  failed");
> -      exit (1);
> -    }
> +
> +  buf = xasprintf ("cp %s %n%s-copy", argv[0], &off, argv[0]);
>     if (system (buf) != 0)
>       {
>         puts ("system  failed");
> diff --git a/posix/tst-execle2.c b/posix/tst-execle2.c
> index 0430b7b573..8e3ad9acb6 100644
> --- a/posix/tst-execle2.c
> +++ b/posix/tst-execle2.c
> @@ -18,12 +18,8 @@ prepare (int argc, char *argv[])
>   {
>     char *buf;
>     int off;
> -  asprintf (&buf, "cp %s %n%s-copy", argv[0], &off, argv[0]);
> -  if (buf == NULL)
> -    {
> -      puts ("asprintf  failed");
> -      exit (1);
> -    }
> +
> +  buf = xasprintf ("cp %s %n%s-copy", argv[0], &off, argv[0]);
>     if (system (buf) != 0)
>       {
>         puts ("system  failed");
> diff --git a/posix/tst-execlp2.c b/posix/tst-execlp2.c
> index 81a723dda4..b42037babd 100644
> --- a/posix/tst-execlp2.c
> +++ b/posix/tst-execlp2.c
> @@ -22,12 +22,8 @@ prepare (int argc, char *argv[])
>   {
>     char *buf;
>     int off;
> -  asprintf (&buf, "cp %s %n%s-copy", argv[0], &off, argv[0]);
> -  if (buf == NULL)
> -    {
> -      puts ("asprintf  failed");
> -      exit (1);
> -    }
> +
> +  buf = xasprintf ("cp %s %n%s-copy", argv[0], &off, argv[0]);
>     if (system (buf) != 0)
>       {
>         puts ("system  failed");
> @@ -59,7 +55,7 @@ do_test (void)
>         return 1;
>       }
>     char *path;
> -  asprintf (&path, "%s:../libio:../elf", bindir);
> +  path = xasprintf ("%s:../libio:../elf", bindir);
>     if (path == NULL)

You don't need this check anymore, do you?

>       {
>         puts ("asprintf  failed");
> diff --git a/posix/tst-execv2.c b/posix/tst-execv2.c
> index a5168a269c..5fd6c46c1f 100644
> --- a/posix/tst-execv2.c
> +++ b/posix/tst-execv2.c
> @@ -18,12 +18,8 @@ prepare (int argc, char *argv[])
>   {
>     char *buf;
>     int off;
> -  asprintf (&buf, "cp %s %n%s-copy", argv[0], &off, argv[0]);
> -  if (buf == NULL)
> -    {
> -      puts ("asprintf  failed");
> -      exit (1);
> -    }
> +
> +  buf = xasprintf ("cp %s %n%s-copy", argv[0], &off, argv[0]);
>     if (system (buf) != 0)
>       {
>         puts ("system  failed");
> diff --git a/posix/tst-execve2.c b/posix/tst-execve2.c
> index 1a804e94fd..e0a7c84346 100644
> --- a/posix/tst-execve2.c
> +++ b/posix/tst-execve2.c
> @@ -18,12 +18,8 @@ prepare (int argc, char *argv[])
>   {
>     char *buf;
>     int off;
> -  asprintf (&buf, "cp %s %n%s-copy", argv[0], &off, argv[0]);
> -  if (buf == NULL)
> -    {
> -      puts ("asprintf  failed");
> -      exit (1);
> -    }
> +
> +  buf = xasprintf ("cp %s %n%s-copy", argv[0], &off, argv[0]);
>     if (system (buf) != 0)
>       {
>         puts ("system  failed");
> diff --git a/posix/tst-execvp2.c b/posix/tst-execvp2.c
> index 440dfab438..f6c0cb4d98 100644
> --- a/posix/tst-execvp2.c
> +++ b/posix/tst-execvp2.c
> @@ -25,12 +25,8 @@ prepare (int argc, char *argv[])
>   {
>     char *buf;
>     int off;
> -  asprintf (&buf, "cp %s %n%s-copy", argv[0], &off, argv[0]);
> -  if (buf == NULL)
> -    {
> -      puts ("asprintf  failed");
> -      exit (1);
> -    }
> +
> +  buf = xasprintf ("cp %s %n%s-copy", argv[0], &off, argv[0]);
>     if (system (buf) != 0)
>       {
>         puts ("system  failed");
> @@ -61,13 +57,8 @@ do_test (void)
>         puts ("canonicalize_file_name failed");
>         return 1;
>       }
> -  char *path;
> -  asprintf (&path, "%s:../libio:../elf", bindir);
> -  if (path == NULL)
> -    {
> -      puts ("asprintf  failed");
> -      return 1;
> -    }
> +
> +  char *path = xasprintf ("%s:../libio:../elf", bindir);
>   
>     setenv ("PATH", path, 1);
>   
> diff --git a/stdio-common/bug5.c b/stdio-common/bug5.c
> index 7bfe9b2b8d..dfa19aed55 100644
> --- a/stdio-common/bug5.c
> +++ b/stdio-common/bug5.c
> @@ -7,6 +7,8 @@
>   #include <stdlib.h>
>   #include <unistd.h>
>   
> +#include <support/support.h>
> +
>   static char buf[8192];
>   
>   int
> @@ -60,7 +62,7 @@ main (void)
>        the perhaps incompatible new shared libraries.  */
>     unsetenv ("LD_LIBRARY_PATH");
>   
> -  asprintf (&printbuf, "cmp %s %s", inname, outname);
> +  printbuf = xasprintf ("cmp %s %s", inname, outname);
>     result = system (printbuf);

Btw, given the number of times this pattern is repeating, I wonder if 
there's utility in wrapping this xasprintf + system pattern.  Anyway, 
it's for a different patch if you or anybody else ever feels motivated 
to do this cleanup.

>     remove (inname);
>     remove (outname);
> diff --git a/stdio-common/test-fwrite.c b/stdio-common/test-fwrite.c
> index 5677c6da80..7f383921ca 100644
> --- a/stdio-common/test-fwrite.c
> +++ b/stdio-common/test-fwrite.c
> @@ -1,6 +1,8 @@
>   #include <stdio.h>
>   #include <string.h>
>   
> +#include <support/support.h>
> +
>   static int
>   do_test (void)
>   {
> @@ -57,7 +59,7 @@ do_test (void)
>         return 1;
>       }
>   
> -  asprintf (&line, "\
> +  line = xasprintf ("\
>   GDB is free software and you are welcome to distribute copies of it\n\
>    under certain conditions; type \"show copying\" to see the conditions.\n\
>   There is absolutely no warranty for GDB; type \"show warranty\" for details.\n\
> diff --git a/stdio-common/tst-fseek.c b/stdio-common/tst-fseek.c
> index c4ac17cdf4..386dd1dd51 100644
> --- a/stdio-common/tst-fseek.c
> +++ b/stdio-common/tst-fseek.c
> @@ -25,6 +25,7 @@
>   #include <time.h>
>   #include <sys/stat.h>
>   
> +#include <support/support.h>
>   
>   static int
>   do_test (void)
> @@ -44,9 +45,7 @@ do_test (void)
>     if (tmpdir == NULL || tmpdir[0] == '\0')
>       tmpdir = "/tmp";
>   
> -  asprintf (&fname, "%s/tst-fseek.XXXXXX", tmpdir);
> -  if (fname == NULL)
> -    error (EXIT_FAILURE, errno, "cannot generate name for temporary file");
> +  fname = xasprintf ("%s/tst-fseek.XXXXXX", tmpdir);
>   
>     /* Create a temporary file.   */
>     fd = mkstemp (fname);
  

Patch

diff --git a/argp/argp-test.c b/argp/argp-test.c
index c7e20f6235..cd69c81b1a 100644
--- a/argp/argp-test.c
+++ b/argp/argp-test.c
@@ -25,6 +25,8 @@ 
 #include <string.h>
 #include <argp.h>
 
+#include <support/support.h>
+
 const char *argp_program_version = "argp-test 1.0";
 
 struct argp_option sub_options[] =
@@ -178,12 +180,12 @@  help_filter (int key, const char *text, void *input)
   if (key == ARGP_KEY_HELP_POST_DOC && text)
     {
       time_t now = time (0);
-      asprintf (&new_text, text, ctime (&now));
+      new_text = xasprintf (text, ctime (&now));
     }
   else if (key == 'f')
     /* Show the default for the --foonly option.  */
-    asprintf (&new_text, "%s (ZOT defaults to %x)",
-	      text, params->foonly_default);
+    new_text = xasprintf ("%s (ZOT defaults to %x)",
+		          text, params->foonly_default);
   else
     new_text = (char *)text;
 
diff --git a/posix/tst-execl2.c b/posix/tst-execl2.c
index 5b74959ef8..d2f4453ad8 100644
--- a/posix/tst-execl2.c
+++ b/posix/tst-execl2.c
@@ -18,12 +18,8 @@  prepare (int argc, char *argv[])
 {
   char *buf;
   int off;
-  asprintf (&buf, "cp %s %n%s-copy", argv[0], &off, argv[0]);
-  if (buf == NULL)
-    {
-      puts ("asprintf  failed");
-      exit (1);
-    }
+
+  buf = xasprintf ("cp %s %n%s-copy", argv[0], &off, argv[0]);
   if (system (buf) != 0)
     {
       puts ("system  failed");
diff --git a/posix/tst-execle2.c b/posix/tst-execle2.c
index 0430b7b573..8e3ad9acb6 100644
--- a/posix/tst-execle2.c
+++ b/posix/tst-execle2.c
@@ -18,12 +18,8 @@  prepare (int argc, char *argv[])
 {
   char *buf;
   int off;
-  asprintf (&buf, "cp %s %n%s-copy", argv[0], &off, argv[0]);
-  if (buf == NULL)
-    {
-      puts ("asprintf  failed");
-      exit (1);
-    }
+
+  buf = xasprintf ("cp %s %n%s-copy", argv[0], &off, argv[0]);
   if (system (buf) != 0)
     {
       puts ("system  failed");
diff --git a/posix/tst-execlp2.c b/posix/tst-execlp2.c
index 81a723dda4..b42037babd 100644
--- a/posix/tst-execlp2.c
+++ b/posix/tst-execlp2.c
@@ -22,12 +22,8 @@  prepare (int argc, char *argv[])
 {
   char *buf;
   int off;
-  asprintf (&buf, "cp %s %n%s-copy", argv[0], &off, argv[0]);
-  if (buf == NULL)
-    {
-      puts ("asprintf  failed");
-      exit (1);
-    }
+
+  buf = xasprintf ("cp %s %n%s-copy", argv[0], &off, argv[0]);
   if (system (buf) != 0)
     {
       puts ("system  failed");
@@ -59,7 +55,7 @@  do_test (void)
       return 1;
     }
   char *path;
-  asprintf (&path, "%s:../libio:../elf", bindir);
+  path = xasprintf ("%s:../libio:../elf", bindir);
   if (path == NULL)
     {
       puts ("asprintf  failed");
diff --git a/posix/tst-execv2.c b/posix/tst-execv2.c
index a5168a269c..5fd6c46c1f 100644
--- a/posix/tst-execv2.c
+++ b/posix/tst-execv2.c
@@ -18,12 +18,8 @@  prepare (int argc, char *argv[])
 {
   char *buf;
   int off;
-  asprintf (&buf, "cp %s %n%s-copy", argv[0], &off, argv[0]);
-  if (buf == NULL)
-    {
-      puts ("asprintf  failed");
-      exit (1);
-    }
+
+  buf = xasprintf ("cp %s %n%s-copy", argv[0], &off, argv[0]);
   if (system (buf) != 0)
     {
       puts ("system  failed");
diff --git a/posix/tst-execve2.c b/posix/tst-execve2.c
index 1a804e94fd..e0a7c84346 100644
--- a/posix/tst-execve2.c
+++ b/posix/tst-execve2.c
@@ -18,12 +18,8 @@  prepare (int argc, char *argv[])
 {
   char *buf;
   int off;
-  asprintf (&buf, "cp %s %n%s-copy", argv[0], &off, argv[0]);
-  if (buf == NULL)
-    {
-      puts ("asprintf  failed");
-      exit (1);
-    }
+
+  buf = xasprintf ("cp %s %n%s-copy", argv[0], &off, argv[0]);
   if (system (buf) != 0)
     {
       puts ("system  failed");
diff --git a/posix/tst-execvp2.c b/posix/tst-execvp2.c
index 440dfab438..f6c0cb4d98 100644
--- a/posix/tst-execvp2.c
+++ b/posix/tst-execvp2.c
@@ -25,12 +25,8 @@  prepare (int argc, char *argv[])
 {
   char *buf;
   int off;
-  asprintf (&buf, "cp %s %n%s-copy", argv[0], &off, argv[0]);
-  if (buf == NULL)
-    {
-      puts ("asprintf  failed");
-      exit (1);
-    }
+
+  buf = xasprintf ("cp %s %n%s-copy", argv[0], &off, argv[0]);
   if (system (buf) != 0)
     {
       puts ("system  failed");
@@ -61,13 +57,8 @@  do_test (void)
       puts ("canonicalize_file_name failed");
       return 1;
     }
-  char *path;
-  asprintf (&path, "%s:../libio:../elf", bindir);
-  if (path == NULL)
-    {
-      puts ("asprintf  failed");
-      return 1;
-    }
+
+  char *path = xasprintf ("%s:../libio:../elf", bindir);
 
   setenv ("PATH", path, 1);
 
diff --git a/stdio-common/bug5.c b/stdio-common/bug5.c
index 7bfe9b2b8d..dfa19aed55 100644
--- a/stdio-common/bug5.c
+++ b/stdio-common/bug5.c
@@ -7,6 +7,8 @@ 
 #include <stdlib.h>
 #include <unistd.h>
 
+#include <support/support.h>
+
 static char buf[8192];
 
 int
@@ -60,7 +62,7 @@  main (void)
      the perhaps incompatible new shared libraries.  */
   unsetenv ("LD_LIBRARY_PATH");
 
-  asprintf (&printbuf, "cmp %s %s", inname, outname);
+  printbuf = xasprintf ("cmp %s %s", inname, outname);
   result = system (printbuf);
   remove (inname);
   remove (outname);
diff --git a/stdio-common/test-fwrite.c b/stdio-common/test-fwrite.c
index 5677c6da80..7f383921ca 100644
--- a/stdio-common/test-fwrite.c
+++ b/stdio-common/test-fwrite.c
@@ -1,6 +1,8 @@ 
 #include <stdio.h>
 #include <string.h>
 
+#include <support/support.h>
+
 static int
 do_test (void)
 {
@@ -57,7 +59,7 @@  do_test (void)
       return 1;
     }
 
-  asprintf (&line, "\
+  line = xasprintf ("\
 GDB is free software and you are welcome to distribute copies of it\n\
  under certain conditions; type \"show copying\" to see the conditions.\n\
 There is absolutely no warranty for GDB; type \"show warranty\" for details.\n\
diff --git a/stdio-common/tst-fseek.c b/stdio-common/tst-fseek.c
index c4ac17cdf4..386dd1dd51 100644
--- a/stdio-common/tst-fseek.c
+++ b/stdio-common/tst-fseek.c
@@ -25,6 +25,7 @@ 
 #include <time.h>
 #include <sys/stat.h>
 
+#include <support/support.h>
 
 static int
 do_test (void)
@@ -44,9 +45,7 @@  do_test (void)
   if (tmpdir == NULL || tmpdir[0] == '\0')
     tmpdir = "/tmp";
 
-  asprintf (&fname, "%s/tst-fseek.XXXXXX", tmpdir);
-  if (fname == NULL)
-    error (EXIT_FAILURE, errno, "cannot generate name for temporary file");
+  fname = xasprintf ("%s/tst-fseek.XXXXXX", tmpdir);
 
   /* Create a temporary file.   */
   fd = mkstemp (fname);