- 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 (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))
+ gdb::byte_vector sym_sec (bfd_section_size (si.sym_sect));
+ gdb::byte_vector str_sec (bfd_section_size (si.str_sect));
+ gdb::byte_vector dyninfo_sec (bfd_section_size (si.dyninfo_sect));
+ gdb::byte_vector got_sec (bfd_section_size (si.got_sect));
+
+ if (!bfd_get_section_contents (abfd, si.sym_sect, sym_sec.data (),
+ (file_ptr) 0, sym_sec.size ()))