aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2022-02-15 16:04:34 +1030
committerAlan Modra <amodra@gmail.com>2022-02-16 19:15:40 +1030
commit6e731729881ae4c1a9542843c29a3981166c9e45 (patch)
tree34472707943faa3de9d0aa90316ebfd7196958df
parentd12b8d620c6aba8e0bf650549949fec1d208a683 (diff)
downloadgdb-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.c4
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:
{