diff options
-rw-r--r-- | binutils-elfcode.h.patch | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/binutils-elfcode.h.patch b/binutils-elfcode.h.patch deleted file mode 100644 index 4ea380d..0000000 --- a/binutils-elfcode.h.patch +++ /dev/null @@ -1,59 +0,0 @@ ---- binutils-2.17.50.0.1/bfd/elfcode.h.orig 2006-04-29 18:32:56.000000000 +0200 -+++ binutils-2.17.50.0.1/bfd/elfcode.h 2006-05-11 20:15:56.000000000 +0200 -@@ -458,6 +458,25 @@ - && (x_ehdrp->e_ident[EI_MAG3] == ELFMAG3)); - } - -+/* Determines if a given section index is valid. */ -+ -+static inline bfd_boolean -+valid_section_index_p (unsigned index, unsigned num_sections) -+{ -+ /* Note: We allow SHN_UNDEF as a valid section index. */ -+ if (index < SHN_LORESERVE || index > SHN_HIRESERVE) -+ return index < num_sections; -+ -+ /* We disallow the use of reserved indcies, except for those -+ with OS or Application specific meaning. The test make use -+ of the knowledge that: -+ SHN_LORESERVE == SHN_LOPROC -+ and -+ SHN_HIPROC == SHN_LOOS - 1 */ -+ /* XXX - Should we allow SHN_XINDEX as a valid index here ? */ -+ return (index >= SHN_LOPROC && index <= SHN_HIOS); -+} -+ - /* Check to see if the file associated with ABFD matches the target vector - that ABFD points to. - -@@ -711,17 +730,13 @@ - elf_swap_shdr_in (abfd, &x_shdr, i_shdrp + shindex); - - /* Sanity check sh_link and sh_info. */ -- if (i_shdrp[shindex].sh_link >= num_sec -- || (i_shdrp[shindex].sh_link >= SHN_LORESERVE -- && i_shdrp[shindex].sh_link <= SHN_HIRESERVE)) -+ if (! valid_section_index_p (i_shdrp[shindex].sh_link, num_sec)) - goto got_wrong_format_error; - - if (((i_shdrp[shindex].sh_flags & SHF_INFO_LINK) - || i_shdrp[shindex].sh_type == SHT_RELA - || i_shdrp[shindex].sh_type == SHT_REL) -- && (i_shdrp[shindex].sh_info >= num_sec -- || (i_shdrp[shindex].sh_info >= SHN_LORESERVE -- && i_shdrp[shindex].sh_info <= SHN_HIRESERVE))) -+ && ! valid_section_index_p (i_shdrp[shindex].sh_info, num_sec)) - goto got_wrong_format_error; - - /* If the section is loaded, but not page aligned, clear -@@ -739,9 +754,7 @@ - /* A further sanity check. */ - if (i_ehdrp->e_shnum != 0) - { -- if (i_ehdrp->e_shstrndx >= elf_numsections (abfd) -- || (i_ehdrp->e_shstrndx >= SHN_LORESERVE -- && i_ehdrp->e_shstrndx <= SHN_HIRESERVE)) -+ if (! valid_section_index_p (i_ehdrp->e_shstrndx, elf_numsections (abfd))) - { - /* PR 2257: - We used to just goto got_wrong_format_error here |