mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-02 19:46:09 +08:00
fix mipsread.c
Some code in mipsread.c could leak cleanups along some return paths. * mipsread.c (read_alphacoff_dynamic_symtab): Call do_cleanups along all return paths.
This commit is contained in:
@ -1,3 +1,8 @@
|
||||
2013-05-30 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* mipsread.c (read_alphacoff_dynamic_symtab): Call do_cleanups
|
||||
along all return paths.
|
||||
|
||||
2013-05-30 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* symfile.c (find_separate_debug_file): Call do_cleanups
|
||||
|
@ -227,16 +227,28 @@ read_alphacoff_dynamic_symtab (struct section_offsets *section_offsets,
|
||||
|
||||
if (!bfd_get_section_contents (abfd, si.sym_sect, sym_secptr,
|
||||
(file_ptr) 0, sym_secsize))
|
||||
return;
|
||||
{
|
||||
do_cleanups (cleanups);
|
||||
return;
|
||||
}
|
||||
if (!bfd_get_section_contents (abfd, si.str_sect, str_secptr,
|
||||
(file_ptr) 0, str_secsize))
|
||||
return;
|
||||
{
|
||||
do_cleanups (cleanups);
|
||||
return;
|
||||
}
|
||||
if (!bfd_get_section_contents (abfd, si.dyninfo_sect, dyninfo_secptr,
|
||||
(file_ptr) 0, dyninfo_secsize))
|
||||
return;
|
||||
{
|
||||
do_cleanups (cleanups);
|
||||
return;
|
||||
}
|
||||
if (!bfd_get_section_contents (abfd, si.got_sect, got_secptr,
|
||||
(file_ptr) 0, got_secsize))
|
||||
return;
|
||||
{
|
||||
do_cleanups (cleanups);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Find the number of local GOT entries and the index for the
|
||||
first dynamic symbol in the GOT. */
|
||||
@ -264,7 +276,10 @@ read_alphacoff_dynamic_symtab (struct section_offsets *section_offsets,
|
||||
}
|
||||
}
|
||||
if (dt_mips_local_gotno < 0 || dt_mips_gotsym < 0)
|
||||
return;
|
||||
{
|
||||
do_cleanups (cleanups);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Scan all dynamic symbols and enter them into the minimal symbol
|
||||
table if appropriate. */
|
||||
|
Reference in New Issue
Block a user