binutils stabs type list
authorAlan Modra <amodra@gmail.com>
Tue, 14 Feb 2023 21:21:00 +0000 (07:51 +1030)
committerAlan Modra <amodra@gmail.com>
Wed, 15 Feb 2023 02:35:28 +0000 (13:05 +1030)
commit72d225ef9cc7d475db188581da33b056df3191fd
tree033d54528bb39c234342c7527648f9f30a1d211c
parent3cd0b4f2c03ddfce91343dd8409407aab3ebb47d
binutils stabs type list

Fuzzers have found that specifying a large stab type number results in
lots of memory being requested, as the list is extended with a 16
element array at a time until we reach the given stab type.  It also
takes a long time.  Of course normal sane stab types use small
positive integers, but it's not hard to modify the code to handle type
numbers starting anyhere.

* stabs.c (struct stab_types): Add base_index.
(stab_find_slot): Simplify filenum check.  Delete type number
check.  Don't allocate entire array from 0 to type number,
allocate a sparse array.
binutils/stabs.c