Remove some static buffers
authorAlan Modra <amodra@gmail.com>
Thu, 17 Dec 2020 12:51:11 +0000 (23:21 +1030)
committerAlan Modra <amodra@gmail.com>
Fri, 18 Dec 2020 00:04:16 +0000 (10:34 +1030)
commit7fbd5f4e2c143bbe28715608ca00e2e93a7d7fd4
treef6bc1211e0cdaecc93850eae7a46b305632c0035
parentbd38246a45dc199ce32b50878670bbbdf7e27ad5
Remove some static buffers

Fixes possible overflow of a static buffer for powerpc with translated
messages, and on v850 when symbol names are large.

* archive.c (_bfd_ar_spacepad, _bfd_ar_sizepad): Use auto buf.
* coff-mcore.c (coff_mcore_relocate_section): Likewise.
* elf32-ppc.c (ppc_elf_unhandled_reloc): Use asprintf in place
of fixed size and possibly too small buf for translated message.
* elf64-ppc.c (ppc64_elf_unhandled_reloc): Likewise.
* elf32-v850.c (v850_elf_check_relocs): Likewise.
* ecoff.c (ecoff_type_to_string): Pass in return string buff rather
than using static buffer2.  Delete dead code.  Remove unnecessary
parentheses.
(_bfd_ecoff_print_symbol): Pass auto buff to ecoff_type_to_string.
* elf32-rx.c (describe_flags): Pass in return string buf rather
than using static buf.
(rx_elf_merge_private_bfd_data): Pass buf to describe_flags.
(rx_elf_print_private_bfd_data): Likewise.
* mach-o.c (cpusubtype): Pass in return string buffer rather than
using static buffer.
(bfd_mach_o_bfd_print_private_bfd_data): Pass buff to cpusubtype.
* opncls.c (separate_debug_file_exists): Make buffer an auto var.
(bfd_fill_in_gnu_debuglink_section): Likewise.
* peXXigen.c (rsrc_resource_name): Pass in return string buffer
rather than using static buffer.
(rsrc_sort_entries): Pass buff to rsrc_resource_name.
* vms-alpha.c (_bfd_vms_write_emh): Pass tbuf to get_vms_time_string.
* vms-misc.c (get_vms_time_string): Pass in return string tbuf
rather than using static tbuf.
* vms.h (get_vms_time_string): Update prototype.
14 files changed:
bfd/ChangeLog
bfd/archive.c
bfd/coff-mcore.c
bfd/ecoff.c
bfd/elf32-ppc.c
bfd/elf32-rx.c
bfd/elf32-v850.c
bfd/elf64-ppc.c
bfd/mach-o.c
bfd/opncls.c
bfd/peXXigen.c
bfd/vms-alpha.c
bfd/vms-misc.c
bfd/vms.h