diff --git a/bfd/ChangeLog b/bfd/ChangeLog index bb73a972759..81836783a04 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2019-02-20 Alan Modra + + PR 24225 + * elf32-nios2.c (nios2_elf32_relocate_section): Check asprintf + return value. + 2019-02-20 Michael Roitzsch * configure.ac (SHARED_LIBADD): Add -liberty -lintl for all diff --git a/bfd/elf32-nios2.c b/bfd/elf32-nios2.c index b0f200d0f8e..5d787eb2f40 100644 --- a/bfd/elf32-nios2.c +++ b/bfd/elf32-nios2.c @@ -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; }