* mipsread.c (read_alphacoff_dynamic_symtab): Replace alloca calls

with xmalloc calls and cleanups.
This commit is contained in:
Peter Schauer 2001-02-10 11:12:06 +00:00
parent d737ece6da
commit 4b2e486790
2 changed files with 17 additions and 5 deletions

View file

@ -1,3 +1,8 @@
2000-02-10 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>
* mipsread.c (read_alphacoff_dynamic_symtab): Replace alloca calls
with xmalloc calls and cleanups.
2000-02-10 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>
* rs6000-nat.c (child_xfer_memory): Add missing parameter

View file

@ -1,5 +1,5 @@
/* Read a symbol table in MIPS' format (Third-Eye).
Copyright 1986, 87, 89, 90, 91, 92, 93, 94, 95, 96, 1998
Copyright 1986, 87, 89, 90, 91, 92, 93, 94, 95, 96, 1998, 2001
Free Software Foundation, Inc.
Contributed by Alessandro Forin (af@cs.cmu.edu) at CMU. Major work
by Per Bothner, John Gilmore and Ian Lance Taylor at Cygnus Support.
@ -243,6 +243,7 @@ read_alphacoff_dynamic_symtab (struct section_offsets *section_offsets,
int got_entry_size = 8;
int dt_mips_local_gotno = -1;
int dt_mips_gotsym = -1;
struct cleanup *cleanups;
/* We currently only know how to handle alpha dynamic symbols. */
@ -262,10 +263,14 @@ read_alphacoff_dynamic_symtab (struct section_offsets *section_offsets,
str_secsize = bfd_get_section_size_before_reloc (si.str_sect);
dyninfo_secsize = bfd_get_section_size_before_reloc (si.dyninfo_sect);
got_secsize = bfd_get_section_size_before_reloc (si.got_sect);
sym_secptr = alloca (sym_secsize);
str_secptr = alloca (str_secsize);
dyninfo_secptr = alloca (dyninfo_secsize);
got_secptr = alloca (got_secsize);
sym_secptr = xmalloc (sym_secsize);
cleanups = make_cleanup (free, sym_secptr);
str_secptr = xmalloc (str_secsize);
make_cleanup (free, str_secptr);
dyninfo_secptr = xmalloc (dyninfo_secsize);
make_cleanup (free, dyninfo_secptr);
got_secptr = xmalloc (got_secsize);
make_cleanup (free, got_secptr);
if (!bfd_get_section_contents (abfd, si.sym_sect, sym_secptr,
(file_ptr) 0, sym_secsize))
@ -418,6 +423,8 @@ read_alphacoff_dynamic_symtab (struct section_offsets *section_offsets,
prim_record_minimal_symbol (name, sym_value, ms_type, objfile);
}
do_cleanups (cleanups);
}
/* Initialization */