aboutsummaryrefslogtreecommitdiff
path: root/bfd/vms-lib.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2021-05-05 13:33:00 +0930
committerAlan Modra <amodra@gmail.com>2021-05-05 13:35:45 +0930
commitc38c6234f2b2425431d28449f609172aa2de549c (patch)
tree68ade1fd8aa8de5e64191ed88181efb4c6095b52 /bfd/vms-lib.c
parent5318ba65f8641ddc05e330c8545f9922cd3c48d6 (diff)
downloadgdb-c38c6234f2b2425431d28449f609172aa2de549c.zip
gdb-c38c6234f2b2425431d28449f609172aa2de549c.tar.gz
gdb-c38c6234f2b2425431d28449f609172aa2de549c.tar.bz2
asan: stack-buffer-overflow vms-lib.c:367
* vms-lib.c (vms_traverse_index): Account for vms_kbn size when sanity checking keylen.
Diffstat (limited to 'bfd/vms-lib.c')
-rw-r--r--bfd/vms-lib.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/bfd/vms-lib.c b/bfd/vms-lib.c
index dc23df3..55e6130 100644
--- a/bfd/vms-lib.c
+++ b/bfd/vms-lib.c
@@ -357,7 +357,7 @@ vms_traverse_index (bfd *abfd, unsigned int vbn, struct carsym_mem *cs,
return false;
kbn = (struct vms_kbn *)(kblk + koff);
klen = bfd_getl16 (kbn->keylen);
- if (klen > sizeof (kblk) - koff)
+ if (klen > sizeof (kblk) - sizeof (struct vms_kbn) - koff)
return false;
kvbn = bfd_getl32 (kbn->rfa.vbn);
koff = bfd_getl16 (kbn->rfa.offset);