2001-01-19 H.J. Lu <hjl@gnu.org>

* elf32-i386.c (elf_i386_check_relocs): Report files with bad
	relocation section names.
	(elf_i386_relocate_section): Report files with bad relocation
	section names and return false.
This commit is contained in:
H.J. Lu 2001-01-20 06:08:35 +00:00
parent 1aad8cf8bb
commit c849217624
2 changed files with 37 additions and 7 deletions

View File

@ -1,3 +1,10 @@
2001-01-19 H.J. Lu <hjl@gnu.org>
* elf32-i386.c (elf_i386_check_relocs): Report files with bad
relocation section names.
(elf_i386_relocate_section): Report files with bad relocation
section names and return false.
2001-01-17 Bo Thorsen <bo@suse.de>
* targets.c: Alphabetize list of xvecs.

View File

@ -670,9 +670,20 @@ elf_i386_check_relocs (abfd, info, sec, relocs)
if (name == NULL)
return false;
BFD_ASSERT (strncmp (name, ".rel", 4) == 0
&& strcmp (bfd_get_section_name (abfd, sec),
name + 4) == 0);
if (strncmp (name, ".rel", 4) != 0
|| strcmp (bfd_get_section_name (abfd, sec),
name + 4) != 0)
{
if (abfd->my_archive)
(*_bfd_error_handler) (_("%s(%s): bad relocation section name `%s\'"),
bfd_get_filename (abfd->my_archive),
bfd_get_filename (abfd),
name);
else
(*_bfd_error_handler) (_("%s: bad relocation section name `%s\'"),
bfd_get_filename (abfd),
name);
}
sreloc = bfd_get_section_by_name (dynobj, name);
if (sreloc == NULL)
@ -1626,10 +1637,22 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
if (name == NULL)
return false;
BFD_ASSERT (strncmp (name, ".rel", 4) == 0
&& strcmp (bfd_get_section_name (input_bfd,
input_section),
name + 4) == 0);
if (strncmp (name, ".rel", 4) != 0
|| strcmp (bfd_get_section_name (input_bfd,
input_section),
name + 4) != 0)
{
if (input_bfd->my_archive)
(*_bfd_error_handler) (_("%s(%s): bad relocation section name `%s\'"),
bfd_get_filename (input_bfd->my_archive),
bfd_get_filename (input_bfd),
name);
else
(*_bfd_error_handler) (_("%s: bad relocation section name `%s\'"),
bfd_get_filename (input_bfd),
name);
return false;
}
sreloc = bfd_get_section_by_name (dynobj, name);
BFD_ASSERT (sreloc != NULL);