PR24402, global buffer overflow in symtab_finalize
PR 24402 * symtab.c (symtab_finalize): Init prev_addr to one less than first symbol address, not one more. Correct test for symbols with leading underscores.
This commit is contained in:
parent
91fc2ba707
commit
f7043f6281
@ -1,3 +1,10 @@
|
||||
2019-04-01 Alan Modra <amodra@gmail.com>
|
||||
|
||||
PR 24402
|
||||
* symtab.c (symtab_finalize): Init prev_addr to one less than
|
||||
first symbol address, not one more. Correct test for symbols
|
||||
with leading underscores.
|
||||
|
||||
2019-01-21 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* po/tr.po: Updated Turkish translation.
|
||||
|
@ -89,7 +89,7 @@ symtab_finalize (Sym_Table *tab)
|
||||
|
||||
/* Remove duplicate entries to speed-up later processing and
|
||||
set end_addr if its not set yet. */
|
||||
prev_addr = tab->base[0].addr + 1;
|
||||
prev_addr = tab->base[0].addr - 1;
|
||||
|
||||
for (src = dst = tab->base; src < tab->limit; ++src)
|
||||
{
|
||||
@ -107,7 +107,7 @@ symtab_finalize (Sym_Table *tab)
|
||||
&& ((src->is_func && !dst[-1].is_func)
|
||||
|| ((src->is_func == dst[-1].is_func)
|
||||
&& ((src->name[0] != '_' && dst[-1].name[0] == '_')
|
||||
|| (src->name[0]
|
||||
|| (src->name[0] == '_' && dst[-1].name[0] == '_'
|
||||
&& src->name[1] != '_'
|
||||
&& dst[-1].name[1] == '_'))))))
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user