Check asprintf return value
authorAlan Modra <amodra@gmail.com>
Wed, 20 Feb 2019 08:24:41 +0000 (18:54 +1030)
committerAlan Modra <amodra@gmail.com>
Wed, 20 Feb 2019 08:24:41 +0000 (18:54 +1030)
git a31b8bd9a05 introduced a warning (depending on your system
headers).

PR 24225
* elf32-nios2.c (nios2_elf32_relocate_section): Check asprintf
return value.

bfd/ChangeLog
bfd/elf32-nios2.c

index bb73a97..8183678 100644 (file)
@@ -1,3 +1,9 @@
+2019-02-20  Alan Modra  <amodra@gmail.com>
+
+       PR 24225
+       * elf32-nios2.c (nios2_elf32_relocate_section): Check asprintf
+       return value.
+
 2019-02-20  Michael Roitzsch  <reactorcontrol@icloud.com>
 
        * configure.ac (SHARED_LIBADD): Add -liberty -lintl for all
index b0f200d..5d787eb 100644 (file)
@@ -3821,7 +3821,9 @@ nios2_elf32_relocate_section (bfd *output_bfd,
 
                  format = _("global pointer relative relocation at address "
                             "%#" PRIx64 " when _gp not defined\n");
-                 asprintf (&msgbuf, format, (uint64_t) reloc_address);
+                 if (asprintf (&msgbuf, format,
+                               (uint64_t) reloc_address) == -1)
+                   msgbuf = NULL;
                  msg = msgbuf;
                  r = bfd_reloc_dangerous;
                }
@@ -3851,9 +3853,10 @@ nios2_elf32_relocate_section (bfd *output_bfd,
                                 "the global pointer (at %#" PRIx64 ") "
                                 "because the offset (%" PRId64 ") is out of "
                                 "the allowed range, -32678 to 32767\n" );
-                     asprintf (&msgbuf, format, name,
-                               (uint64_t) symbol_address, (uint64_t) gp,
-                               (int64_t) relocation);
+                     if (asprintf (&msgbuf, format, name,
+                                   (uint64_t) symbol_address, (uint64_t) gp,
+                                   (int64_t) relocation) == -1)
+                       msgbuf = NULL;
                      msg = msgbuf;
                      r = bfd_reloc_outofrange;
                    }