[binutils-gdb] elfedit false "may be used uninitialised"

Alan Modra amodra@sourceware.org
Mon Nov 9 03:52:06 GMT 2020


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=a4e91c46306ed0bd24b45f882af0e28c5c8c3634

commit a4e91c46306ed0bd24b45f882af0e28c5c8c3634
Author: Alan Modra <amodra@gmail.com>
Date:   Mon Nov 9 09:39:53 2020 +1030

    elfedit false "may be used uninitialised"
    
    elfedit.c:904:15: error: 'osabi' may be used uninitialised in this function [-Werror=maybe-uninitialized]
      904 |       osabi = concat (osabi, "|", osabis[i].name, NULL);
          |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
            * elfedit (usage): Avoid false positive "may be used uninitialised".
            Don't leak memory.

Diff:
---
 binutils/ChangeLog | 5 +++++
 binutils/elfedit.c | 9 +++------
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 2e24fafb767..49e1f051804 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,8 @@
+2020-11-09  Alan Modra  <amodra@gmail.com>
+
+	* elfedit (usage): Avoid false positive "may be used uninitialised".
+	Don't leak memory.
+
 2020-11-09  Howard Chu  <hyc@symas.com>
 
 	* ar.c (main): Use plugin_target rather than "target" when
diff --git a/binutils/elfedit.c b/binutils/elfedit.c
index 5fffe845d86..55474ffbbce 100644
--- a/binutils/elfedit.c
+++ b/binutils/elfedit.c
@@ -895,13 +895,10 @@ ATTRIBUTE_NORETURN static void
 usage (FILE *stream, int exit_status)
 {
   unsigned int i;
-  char *osabi;
+  char *osabi = concat (osabis[0].name, NULL);
 
-  for (i = 0; i < ARRAY_SIZE (osabis); i++)
-    if (i == 0)
-      osabi = concat (osabis[i].name, NULL);
-    else
-      osabi = concat (osabi, "|", osabis[i].name, NULL);
+  for (i = 1; i < ARRAY_SIZE (osabis); i++)
+    osabi = reconcat (osabi, "|", osabis[i].name, NULL);
 
   fprintf (stream, _("Usage: %s <option(s)> elffile(s)\n"),
 	   program_name);


More information about the Binutils-cvs mailing list