diff options
author | Alan Modra <amodra@gmail.com> | 2022-02-15 16:04:34 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2022-02-16 19:15:40 +1030 |
commit | 6e731729881ae4c1a9542843c29a3981166c9e45 (patch) | |
tree | 34472707943faa3de9d0aa90316ebfd7196958df | |
parent | d12b8d620c6aba8e0bf650549949fec1d208a683 (diff) | |
download | gdb-6e731729881ae4c1a9542843c29a3981166c9e45.zip gdb-6e731729881ae4c1a9542843c29a3981166c9e45.tar.gz gdb-6e731729881ae4c1a9542843c29a3981166c9e45.tar.bz2 |
asan: buffer overflow in vms-alpha.c
* vms-alpha.c (evax_bfd_print_dst): Sanity check another place
printing strings.
-rw-r--r-- | bfd/vms-alpha.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/bfd/vms-alpha.c b/bfd/vms-alpha.c index c8250e2..06fa891 100644 --- a/bfd/vms-alpha.c +++ b/bfd/vms-alpha.c @@ -7390,7 +7390,9 @@ evax_bfd_print_dst (struct bfd *abfd, unsigned int dst_size, FILE *file) fprintf (file, _("standard data: %s\n"), evax_bfd_get_dsc_name (type)); evax_bfd_print_valspec (buf, len, 4, file); - fprintf (file, _(" name: %.*s\n"), buf[5], buf + 6); + if (len > 6) + fprintf (file, _(" name: %.*s\n"), + buf[5] > len - 6 ? len - 6 : buf[5], buf + 6); break; case DST__K_MODBEG: { |