- sym_secsize = bfd_get_section_size_before_reloc (si.sym_sect);
- 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_secsize = bfd_get_section_size (si.sym_sect);
+ str_secsize = bfd_get_section_size (si.str_sect);
+ dyninfo_secsize = bfd_get_section_size (si.dyninfo_sect);
+ got_secsize = bfd_get_section_size (si.got_sect);
+ sym_secptr = xmalloc (sym_secsize);
+ cleanups = make_cleanup (xfree, sym_secptr);
+ str_secptr = xmalloc (str_secsize);
+ make_cleanup (xfree, str_secptr);
+ dyninfo_secptr = xmalloc (dyninfo_secsize);
+ make_cleanup (xfree, dyninfo_secptr);
+ got_secptr = xmalloc (got_secsize);
+ make_cleanup (xfree, got_secptr);