* solib-svr4.c (IGNORE_FIRST_LINK_MAP_ENTRY): Avoid dereferencing
NULL pointer. (scan_dyntag): Skip if input bfd isn't elf flavoured. (locate_base): Call elf_locate_base even without an exec_bfd.
This commit is contained in:
parent
9f74293adb
commit
0763ab8126
2 changed files with 15 additions and 7 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
2009-06-20 Aleksandar Ristovski <aristovski@qnx.com>
|
||||||
|
Pedro Alves <pedro@codesourcery.com>
|
||||||
|
|
||||||
|
* solib-svr4.c (IGNORE_FIRST_LINK_MAP_ENTRY): Avoid dereferencing
|
||||||
|
NULL pointer.
|
||||||
|
(scan_dyntag): Skip if input bfd isn't elf flavoured.
|
||||||
|
(locate_base): Call elf_locate_base even without an exec_bfd.
|
||||||
|
|
||||||
2009-06-19 Samuel Bronson <naesten@gmail.com>
|
2009-06-19 Samuel Bronson <naesten@gmail.com>
|
||||||
|
|
||||||
PR cli/9903:
|
PR cli/9903:
|
||||||
|
|
|
@ -266,7 +266,7 @@ IGNORE_FIRST_LINK_MAP_ENTRY (struct so_list *so)
|
||||||
|
|
||||||
/* Assume that everything is a library if the dynamic loader was loaded
|
/* Assume that everything is a library if the dynamic loader was loaded
|
||||||
late by a static executable. */
|
late by a static executable. */
|
||||||
if (bfd_get_section_by_name (exec_bfd, ".dynamic") == NULL)
|
if (exec_bfd && bfd_get_section_by_name (exec_bfd, ".dynamic") == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return extract_typed_address (so->lm_info->lm + lmo->l_prev_offset,
|
return extract_typed_address (so->lm_info->lm + lmo->l_prev_offset,
|
||||||
|
@ -600,9 +600,13 @@ scan_dyntag (int dyntag, bfd *abfd, CORE_ADDR *ptr)
|
||||||
|
|
||||||
if (abfd == NULL)
|
if (abfd == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
if (bfd_get_flavour (abfd) != bfd_target_elf_flavour)
|
||||||
|
return 0;
|
||||||
|
|
||||||
arch_size = bfd_get_arch_size (abfd);
|
arch_size = bfd_get_arch_size (abfd);
|
||||||
if (arch_size == -1)
|
if (arch_size == -1)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* Find the start address of the .dynamic section. */
|
/* Find the start address of the .dynamic section. */
|
||||||
sect = bfd_get_section_by_name (abfd, ".dynamic");
|
sect = bfd_get_section_by_name (abfd, ".dynamic");
|
||||||
|
@ -825,11 +829,7 @@ locate_base (struct svr4_info *info)
|
||||||
though if we don't have some link map offsets to work with. */
|
though if we don't have some link map offsets to work with. */
|
||||||
|
|
||||||
if (info->debug_base == 0 && svr4_have_link_map_offsets ())
|
if (info->debug_base == 0 && svr4_have_link_map_offsets ())
|
||||||
{
|
info->debug_base = elf_locate_base ();
|
||||||
if (exec_bfd != NULL
|
|
||||||
&& bfd_get_flavour (exec_bfd) == bfd_target_elf_flavour)
|
|
||||||
info->debug_base = elf_locate_base ();
|
|
||||||
}
|
|
||||||
return info->debug_base;
|
return info->debug_base;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue