diff options
Diffstat (limited to 'elfutils-robustify.patch')
-rw-r--r-- | elfutils-robustify.patch | 126 |
1 files changed, 63 insertions, 63 deletions
diff --git a/elfutils-robustify.patch b/elfutils-robustify.patch index 10741aaa..8e6f5455 100644 --- a/elfutils-robustify.patch +++ b/elfutils-robustify.patch @@ -1,6 +1,6 @@ --- elfutils/libelf/ChangeLog +++ elfutils/libelf/ChangeLog -@@ -606,6 +606,49 @@ +@@ -616,6 +616,49 @@ If section content hasn't been read yet, do it before looking for the block size. If no section data present, infer size of section header. @@ -220,7 +220,7 @@ for (size_t cnt = 0; cnt < scncnt; ++cnt) { -@@ -409,13 +440,28 @@ file_read_elf (int fildes, void *map_add +@@ -412,13 +443,28 @@ file_read_elf (int fildes, void *map_add { /* We can use the mmapped memory. */ elf->state.elf64.ehdr = ehdr; @@ -905,7 +905,7 @@ #endif /* libelfP.h */ --- elfutils/src/ChangeLog +++ elfutils/src/ChangeLog -@@ -1509,6 +1509,16 @@ +@@ -1532,6 +1532,16 @@ object symbols or symbols with unknown type. (check_rel): Likewise. @@ -922,7 +922,7 @@ 2005-06-08 Roland McGrath <roland@redhat.com> * readelf.c (print_ops): Add consts. -@@ -1554,6 +1564,19 @@ +@@ -1577,6 +1587,19 @@ * readelf.c (dwarf_tag_string): Add new tags. @@ -944,7 +944,7 @@ * strip.c (handle_elf): Don't translate hash and versym data formats, --- elfutils/src/elflint.c +++ elfutils/src/elflint.c -@@ -130,6 +130,10 @@ static uint32_t shstrndx; +@@ -131,6 +131,10 @@ static uint32_t shstrndx; /* Array to count references in section groups. */ static int *scnref; @@ -955,7 +955,7 @@ int main (int argc, char *argv[]) -@@ -318,10 +322,19 @@ section_name (Ebl *ebl, int idx) +@@ -319,10 +323,19 @@ section_name (Ebl *ebl, int idx) { GElf_Shdr shdr_mem; GElf_Shdr *shdr; @@ -976,7 +976,7 @@ } -@@ -343,11 +356,6 @@ static const int valid_e_machine[] = +@@ -344,11 +357,6 @@ static const int valid_e_machine[] = (sizeof (valid_e_machine) / sizeof (valid_e_machine[0])) @@ -988,7 +988,7 @@ static void check_elf_header (Ebl *ebl, GElf_Ehdr *ehdr, size_t size) { -@@ -631,7 +639,8 @@ section [%2d] '%s': symbol table cannot +@@ -632,7 +640,8 @@ section [%2d] '%s': symbol table cannot } } @@ -998,7 +998,7 @@ ERROR (gettext ("\ section [%2u] '%s': entry size is does not match ElfXX_Sym\n"), idx, section_name (ebl, idx)); -@@ -669,7 +678,7 @@ section [%2d] '%s': XINDEX for zeroth en +@@ -670,7 +679,7 @@ section [%2d] '%s': XINDEX for zeroth en xndxscnidx, section_name (ebl, xndxscnidx)); } @@ -1007,7 +1007,7 @@ { sym = gelf_getsymshndx (data, xndxdata, cnt, &sym_mem, &xndx); if (sym == NULL) -@@ -689,7 +698,8 @@ section [%2d] '%s': symbol %zu: invalid +@@ -690,7 +699,8 @@ section [%2d] '%s': symbol %zu: invalid else { name = elf_strptr (ebl->elf, shdr->sh_link, sym->st_name); @@ -1017,7 +1017,7 @@ } if (sym->st_shndx == SHN_XINDEX) -@@ -1037,9 +1047,11 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e +@@ -1038,9 +1048,11 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e { GElf_Shdr rcshdr_mem; const GElf_Shdr *rcshdr = gelf_getshdr (scn, &rcshdr_mem); @@ -1031,7 +1031,7 @@ { /* Found the dynamic section. Look through it. */ Elf_Data *d = elf_getdata (scn, NULL); -@@ -1049,7 +1061,9 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e +@@ -1050,7 +1062,9 @@ is_rel_dyn (Ebl *ebl, const GElf_Ehdr *e { GElf_Dyn dyn_mem; GElf_Dyn *dyn = gelf_getdyn (d, cnt, &dyn_mem); @@ -1042,7 +1042,7 @@ if (dyn->d_tag == DT_RELCOUNT) { -@@ -1063,7 +1077,9 @@ section [%2d] '%s': DT_RELCOUNT used for +@@ -1064,7 +1078,9 @@ section [%2d] '%s': DT_RELCOUNT used for /* Does the number specified number of relative relocations exceed the total number of relocations? */ @@ -1053,7 +1053,7 @@ ERROR (gettext ("\ section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n"), idx, section_name (ebl, idx), -@@ -1223,7 +1239,8 @@ section [%2d] '%s': no relocations for m +@@ -1224,7 +1240,8 @@ section [%2d] '%s': no relocations for m } } @@ -1063,7 +1063,7 @@ ERROR (gettext (reltype == ELF_T_RELA ? "\ section [%2d] '%s': section entry size does not match ElfXX_Rela\n" : "\ section [%2d] '%s': section entry size does not match ElfXX_Rel\n"), -@@ -1446,7 +1463,8 @@ check_rela (Ebl *ebl, GElf_Ehdr *ehdr, G +@@ -1447,7 +1464,8 @@ check_rela (Ebl *ebl, GElf_Ehdr *ehdr, G Elf_Data *symdata = elf_getdata (symscn, NULL); enum load_state state = state_undecided; @@ -1073,7 +1073,7 @@ { GElf_Rela rela_mem; GElf_Rela *rela = gelf_getrela (data, cnt, &rela_mem); -@@ -1496,7 +1514,8 @@ check_rel (Ebl *ebl, GElf_Ehdr *ehdr, GE +@@ -1497,7 +1515,8 @@ check_rel (Ebl *ebl, GElf_Ehdr *ehdr, GE Elf_Data *symdata = elf_getdata (symscn, NULL); enum load_state state = state_undecided; @@ -1083,7 +1083,7 @@ { GElf_Rel rel_mem; GElf_Rel *rel = gelf_getrel (data, cnt, &rel_mem); -@@ -1599,7 +1618,8 @@ section [%2d] '%s': referenced as string +@@ -1600,7 +1619,8 @@ section [%2d] '%s': referenced as string shdr->sh_link, section_name (ebl, shdr->sh_link), idx, section_name (ebl, idx)); @@ -1093,7 +1093,7 @@ ERROR (gettext ("\ section [%2d] '%s': section entry size does not match ElfXX_Dyn\n"), idx, section_name (ebl, idx)); -@@ -1609,7 +1629,7 @@ section [%2d] '%s': section entry size d +@@ -1610,7 +1630,7 @@ section [%2d] '%s': section entry size d idx, section_name (ebl, idx)); bool non_null_warned = false; @@ -1102,7 +1102,7 @@ { GElf_Dyn dyn_mem; GElf_Dyn *dyn = gelf_getdyn (data, cnt, &dyn_mem); -@@ -1890,6 +1910,8 @@ section [%2d] '%s': entry size does not +@@ -1891,6 +1911,8 @@ section [%2d] '%s': entry size does not idx, section_name (ebl, idx)); if (symshdr != NULL @@ -1111,7 +1111,7 @@ && (shdr->sh_size / shdr->sh_entsize < symshdr->sh_size / symshdr->sh_entsize)) ERROR (gettext ("\ -@@ -1916,6 +1938,12 @@ section [%2d] '%s': extended section ind +@@ -1917,6 +1939,12 @@ section [%2d] '%s': extended section ind } Elf_Data *data = elf_getdata (elf_getscn (ebl->elf, idx), NULL); @@ -1124,7 +1124,7 @@ if (*((Elf32_Word *) data->d_buf) != 0) ERROR (gettext ("symbol 0 should have zero extended section index\n")); -@@ -1958,7 +1986,7 @@ section [%2d] '%s': hash table section i +@@ -1959,7 +1987,7 @@ section [%2d] '%s': hash table section i size_t maxidx = nchain; @@ -1133,7 +1133,7 @@ { size_t symsize = symshdr->sh_size / symshdr->sh_entsize; -@@ -1969,18 +1997,28 @@ section [%2d] '%s': hash table section i +@@ -1970,18 +1998,28 @@ section [%2d] '%s': hash table section i maxidx = symsize; } @@ -1164,7 +1164,7 @@ } -@@ -2010,18 +2048,28 @@ section [%2d] '%s': hash table section i +@@ -2011,18 +2049,28 @@ section [%2d] '%s': hash table section i maxidx = symsize; } @@ -1196,7 +1196,7 @@ } -@@ -2046,7 +2094,7 @@ section [%2d] '%s': bitmask size not pow +@@ -2047,7 +2095,7 @@ section [%2d] '%s': bitmask size not pow if (shdr->sh_size < (4 + bitmask_words + nbuckets) * sizeof (Elf32_Word)) { ERROR (gettext ("\ @@ -1205,7 +1205,7 @@ idx, section_name (ebl, idx), (long int) shdr->sh_size, (long int) ((4 + bitmask_words + nbuckets) * sizeof (Elf32_Word))); return; -@@ -2718,8 +2766,9 @@ section [%2d] '%s' refers in sh_link to +@@ -2719,8 +2767,9 @@ section [%2d] '%s' refers in sh_link to /* The number of elements in the version symbol table must be the same as the number of symbols. */ @@ -1219,7 +1219,7 @@ idx, section_name (ebl, idx), --- elfutils/src/readelf.c +++ elfutils/src/readelf.c -@@ -1169,6 +1169,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G +@@ -1170,6 +1170,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G Elf32_Word *grpref = (Elf32_Word *) data->d_buf; GElf_Sym sym_mem; @@ -1228,7 +1228,7 @@ printf ((grpref[0] & GRP_COMDAT) ? ngettext ("\ \nCOMDAT section group [%2zu] '%s' with signature '%s' contains %zu entry:\n", -@@ -1181,8 +1183,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G +@@ -1182,8 +1184,8 @@ handle_scngrp (Ebl *ebl, Elf_Scn *scn, G data->d_size / sizeof (Elf32_Word) - 1), elf_ndxscn (scn), elf_strptr (ebl->elf, shstrndx, shdr->sh_name), @@ -1239,7 +1239,7 @@ ?: gettext ("<INVALID SYMBOL>"), data->d_size / sizeof (Elf32_Word) - 1); -@@ -1333,7 +1335,8 @@ static void +@@ -1334,7 +1336,8 @@ static void handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr) { int class = gelf_getclass (ebl->elf); @@ -1249,7 +1249,7 @@ Elf_Data *data; size_t cnt; size_t shstrndx; -@@ -1348,6 +1351,11 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, +@@ -1349,6 +1352,11 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, error (EXIT_FAILURE, 0, gettext ("cannot get section header string table index")); @@ -1261,7 +1261,7 @@ printf (ngettext ("\ \nDynamic segment contains %lu entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", "\ -@@ -1357,9 +1365,7 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, +@@ -1358,9 +1366,7 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, shdr->sh_offset, (int) shdr->sh_link, @@ -1272,7 +1272,7 @@ fputs_unlocked (gettext (" Type Value\n"), stdout); for (cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt) -@@ -1942,6 +1948,13 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G +@@ -1943,6 +1949,13 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G error (EXIT_FAILURE, 0, gettext ("cannot get section header string table index")); @@ -1286,7 +1286,7 @@ /* Now we can compute the number of entries in the section. */ unsigned int nsyms = data->d_size / (class == ELFCLASS32 ? sizeof (Elf32_Sym) -@@ -1952,15 +1965,12 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G +@@ -1953,15 +1966,12 @@ handle_symtab (Ebl *ebl, Elf_Scn *scn, G nsyms), (unsigned int) elf_ndxscn (scn), elf_strptr (ebl->elf, shstrndx, shdr->sh_name), nsyms); @@ -1303,7 +1303,7 @@ fputs_unlocked (class == ELFCLASS32 ? gettext ("\ -@@ -2196,7 +2206,13 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, +@@ -2197,7 +2207,13 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, error (EXIT_FAILURE, 0, gettext ("cannot get section header string table index")); @@ -1318,7 +1318,7 @@ printf (ngettext ("\ \nVersion needs section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", "\ -@@ -2207,9 +2223,7 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, +@@ -2208,9 +2224,7 @@ handle_verneed (Ebl *ebl, Elf_Scn *scn, class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, shdr->sh_offset, (unsigned int) shdr->sh_link, @@ -1329,7 +1329,7 @@ unsigned int offset = 0; for (int cnt = shdr->sh_info; --cnt >= 0; ) -@@ -2262,8 +2276,14 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G +@@ -2263,8 +2277,14 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G error (EXIT_FAILURE, 0, gettext ("cannot get section header string table index")); @@ -1345,7 +1345,7 @@ printf (ngettext ("\ \nVersion definition section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", "\ -@@ -2275,9 +2295,7 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G +@@ -2276,9 +2296,7 @@ handle_verdef (Ebl *ebl, Elf_Scn *scn, G class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, shdr->sh_offset, (unsigned int) shdr->sh_link, @@ -1356,7 +1356,7 @@ unsigned int offset = 0; for (int cnt = shdr->sh_info; --cnt >= 0; ) -@@ -2539,8 +2557,14 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G +@@ -2540,8 +2558,14 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G filename = NULL; } @@ -1372,7 +1372,7 @@ printf (ngettext ("\ \nVersion symbols section [%2u] '%s' contains %d entry:\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'", "\ -@@ -2552,9 +2576,7 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G +@@ -2553,9 +2577,7 @@ handle_versym (Ebl *ebl, Elf_Scn *scn, G class == ELFCLASS32 ? 10 : 18, shdr->sh_addr, shdr->sh_offset, (unsigned int) shdr->sh_link, @@ -1383,7 +1383,7 @@ /* Now we can finally look at the actual contents of this section. */ for (unsigned int cnt = 0; cnt < shdr->sh_size / shdr->sh_entsize; ++cnt) -@@ -2606,7 +2628,17 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, +@@ -2607,7 +2629,17 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, for (Elf32_Word cnt = 0; cnt < nbucket; ++cnt) ++counts[lengths[cnt]]; @@ -1402,7 +1402,7 @@ printf (ngettext ("\ \nHistogram for bucket list length in section [%2u] '%s' (total of %d bucket):\n Addr: %#0*" PRIx64 " Offset: %#08" PRIx64 " Link to section: [%2u] '%s'\n", "\ -@@ -2619,9 +2651,7 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, +@@ -2620,9 +2652,7 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, shdr->sh_addr, shdr->sh_offset, (unsigned int) shdr->sh_link, @@ -1413,7 +1413,7 @@ if (extrastr != NULL) fputs (extrastr, stdout); -@@ -4262,6 +4292,16 @@ print_debug_aranges_section (Dwfl_Module +@@ -4263,6 +4293,16 @@ print_debug_aranges_section (Dwfl_Module return; } @@ -1432,7 +1432,7 @@ "\ --- elfutils/src/strip.c +++ elfutils/src/strip.c -@@ -544,6 +544,11 @@ handle_elf (int fd, Elf *elf, const char +@@ -545,6 +545,11 @@ handle_elf (int fd, Elf *elf, const char goto fail_close; } @@ -1444,7 +1444,7 @@ /* Storage for section information. We leave room for two more entries since we unconditionally create a section header string table. Maybe some weird tool created an ELF file without one. -@@ -565,7 +570,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -566,7 +571,7 @@ handle_elf (int fd, Elf *elf, const char { /* This should always be true (i.e., there should not be any holes in the numbering). */ @@ -1453,7 +1453,7 @@ shdr_info[cnt].scn = scn; -@@ -578,6 +583,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -579,6 +584,7 @@ handle_elf (int fd, Elf *elf, const char shdr_info[cnt].shdr.sh_name); if (shdr_info[cnt].name == NULL) { @@ -1461,7 +1461,7 @@ error (0, 0, gettext ("illformed file '%s'"), fname); goto fail_close; } -@@ -587,6 +593,8 @@ handle_elf (int fd, Elf *elf, const char +@@ -588,6 +594,8 @@ handle_elf (int fd, Elf *elf, const char /* Remember the shdr.sh_link value. */ shdr_info[cnt].old_sh_link = shdr_info[cnt].shdr.sh_link; @@ -1470,7 +1470,7 @@ /* Sections in files other than relocatable object files which are not loaded can be freely moved by us. In relocatable -@@ -599,7 +607,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -600,7 +608,7 @@ handle_elf (int fd, Elf *elf, const char appropriate reference. */ if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_SYMTAB_SHNDX)) { @@ -1479,7 +1479,7 @@ shdr_info[shdr_info[cnt].shdr.sh_link].symtab_idx = cnt; } else if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_GROUP)) -@@ -616,7 +624,12 @@ handle_elf (int fd, Elf *elf, const char +@@ -617,7 +625,12 @@ handle_elf (int fd, Elf *elf, const char for (inner = 1; inner < shdr_info[cnt].data->d_size / sizeof (Elf32_Word); ++inner) @@ -1492,7 +1492,7 @@ if (inner == 1 || (inner == 2 && (grpref[0] & GRP_COMDAT) == 0)) /* If the section group contains only one element and this -@@ -627,7 +640,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -628,7 +641,7 @@ handle_elf (int fd, Elf *elf, const char } else if (unlikely (shdr_info[cnt].shdr.sh_type == SHT_GNU_versym)) { @@ -1501,7 +1501,7 @@ shdr_info[shdr_info[cnt].shdr.sh_link].version_idx = cnt; } -@@ -635,7 +648,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -636,7 +649,7 @@ handle_elf (int fd, Elf *elf, const char discarded right away. */ if ((shdr_info[cnt].shdr.sh_flags & SHF_GROUP) != 0) { @@ -1510,7 +1510,7 @@ if (shdr_info[shdr_info[cnt].group_idx].idx == 0) { -@@ -710,11 +723,15 @@ handle_elf (int fd, Elf *elf, const char +@@ -711,11 +724,15 @@ handle_elf (int fd, Elf *elf, const char { /* If a relocation section is marked as being removed make sure the section it is relocating is removed, too. */ @@ -1528,7 +1528,7 @@ if (shdr_info[cnt].idx == 1) { -@@ -741,7 +758,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -742,7 +759,7 @@ handle_elf (int fd, Elf *elf, const char if (shdr_info[cnt].symtab_idx != 0 && shdr_info[shdr_info[cnt].symtab_idx].data == NULL) { @@ -1537,7 +1537,7 @@ shdr_info[shdr_info[cnt].symtab_idx].data = elf_getdata (shdr_info[shdr_info[cnt].symtab_idx].scn, -@@ -781,6 +798,9 @@ handle_elf (int fd, Elf *elf, const char +@@ -782,6 +799,9 @@ handle_elf (int fd, Elf *elf, const char else if (scnidx == SHN_XINDEX) scnidx = xndx; @@ -1547,7 +1547,7 @@ if (shdr_info[scnidx].idx == 0) /* This symbol table has a real symbol in a discarded section. So preserve the -@@ -811,12 +831,16 @@ handle_elf (int fd, Elf *elf, const char +@@ -812,12 +832,16 @@ handle_elf (int fd, Elf *elf, const char } /* Handle references through sh_info. */ @@ -1566,7 +1566,7 @@ /* Mark the section as investigated. */ shdr_info[cnt].idx = 2; -@@ -955,7 +979,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -956,7 +980,7 @@ handle_elf (int fd, Elf *elf, const char error (EXIT_FAILURE, 0, gettext ("while generating output file: %s"), elf_errmsg (-1)); @@ -1575,7 +1575,7 @@ /* Add this name to the section header string table. */ shdr_info[cnt].se = ebl_strtabadd (shst, shdr_info[cnt].name, 0); -@@ -992,7 +1016,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -993,7 +1017,7 @@ handle_elf (int fd, Elf *elf, const char error (EXIT_FAILURE, 0, gettext ("while create section header section: %s"), elf_errmsg (-1)); @@ -1584,7 +1584,7 @@ shdr_info[cnt].data = elf_newdata (shdr_info[cnt].newscn); if (shdr_info[cnt].data == NULL) -@@ -1048,7 +1072,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -1049,7 +1073,7 @@ handle_elf (int fd, Elf *elf, const char error (EXIT_FAILURE, 0, gettext ("while create section header section: %s"), elf_errmsg (-1)); @@ -1593,7 +1593,7 @@ /* Finalize the string table and fill in the correct indices in the section headers. */ -@@ -1138,20 +1162,20 @@ handle_elf (int fd, Elf *elf, const char +@@ -1139,20 +1163,20 @@ handle_elf (int fd, Elf *elf, const char shndxdata = elf_getdata (shdr_info[shdr_info[cnt].symtab_idx].scn, NULL); @@ -1617,7 +1617,7 @@ >= shdr_info[cnt].data->d_size / elsize); } -@@ -1206,7 +1230,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -1207,7 +1231,7 @@ handle_elf (int fd, Elf *elf, const char sec = shdr_info[sym->st_shndx].idx; else { @@ -1626,7 +1626,7 @@ sec = shdr_info[xshndx].idx; } -@@ -1227,7 +1251,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -1228,7 +1252,7 @@ handle_elf (int fd, Elf *elf, const char nxshndx = sec; } @@ -1635,7 +1635,7 @@ if ((inner != destidx || nshndx != sym->st_shndx || (shndxdata != NULL && nxshndx != xshndx)) -@@ -1251,7 +1275,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -1252,7 +1276,7 @@ handle_elf (int fd, Elf *elf, const char || shdr_info[cnt].debug_data == NULL) /* This is a section symbol for a section which has been removed. */ @@ -1644,7 +1644,7 @@ } if (destidx != inner) -@@ -1438,11 +1462,11 @@ handle_elf (int fd, Elf *elf, const char +@@ -1439,11 +1463,11 @@ handle_elf (int fd, Elf *elf, const char { GElf_Sym sym_mem; GElf_Sym *sym = gelf_getsym (symd, inner, &sym_mem); @@ -1658,7 +1658,7 @@ size_t hidx = elf_hash (name) % nbucket; if (bucket[hidx] == 0) -@@ -1461,7 +1485,7 @@ handle_elf (int fd, Elf *elf, const char +@@ -1462,7 +1486,7 @@ handle_elf (int fd, Elf *elf, const char else { /* Alpha and S390 64-bit use 64-bit SHT_HASH entries. */ @@ -1667,7 +1667,7 @@ == sizeof (Elf64_Xword)); Elf64_Xword *bucket = (Elf64_Xword *) hashd->d_buf; -@@ -1492,11 +1516,11 @@ handle_elf (int fd, Elf *elf, const char +@@ -1493,11 +1517,11 @@ handle_elf (int fd, Elf *elf, const char { GElf_Sym sym_mem; GElf_Sym *sym = gelf_getsym (symd, inner, &sym_mem); |