diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/elfops/first-section-in-segment.c | 36 | ||||
-rw-r--r-- | src/elfops/section-in-segment.c (renamed from src/elfops/last-section-in-segment.c) | 31 |
2 files changed, 31 insertions, 36 deletions
diff --git a/src/elfops/first-section-in-segment.c b/src/elfops/first-section-in-segment.c deleted file mode 100644 index 58065a5..0000000 --- a/src/elfops/first-section-in-segment.c +++ /dev/null @@ -1,36 +0,0 @@ -#include <stdlib.h> - -#include <libelf.h> -#include <gelf.h> - -#include <libelfu/libelfu.h> - - -/* - * Returns the section that starts at the same point in the file as - * the segment AND is wholly contained in the memory image. - * - * If no section fits, NULL is returned. - */ -Elf_Scn* elfu_firstSectionInSegment(Elf *e, GElf_Phdr *phdr) -{ - Elf_Scn *scn; - - scn = elf_getscn(e, 1); - while (scn) { - GElf_Shdr shdr; - - if (gelf_getshdr(scn, &shdr) != &shdr) { - return NULL; - } - - if (shdr.sh_offset == phdr->p_offset - && elfu_segmentContainsSection(phdr, &shdr)) { - return scn; - } - - scn = elf_nextscn(e, scn); - } - - return NULL; -} diff --git a/src/elfops/last-section-in-segment.c b/src/elfops/section-in-segment.c index 53323f6..e12720f 100644 --- a/src/elfops/last-section-in-segment.c +++ b/src/elfops/section-in-segment.c @@ -8,6 +8,37 @@ /* + * Returns the section that starts at the same point in the file as + * the segment AND is wholly contained in the memory image. + * + * If no section fits, NULL is returned. + */ +Elf_Scn* elfu_firstSectionInSegment(Elf *e, GElf_Phdr *phdr) +{ + Elf_Scn *scn; + + scn = elf_getscn(e, 1); + while (scn) { + GElf_Shdr shdr; + + if (gelf_getshdr(scn, &shdr) != &shdr) { + return NULL; + } + + if (shdr.sh_offset == phdr->p_offset + && elfu_segmentContainsSection(phdr, &shdr)) { + return scn; + } + + scn = elf_nextscn(e, scn); + } + + return NULL; +} + + + +/* * Returns the first section that is contained in the segment and * ends as close to its memory image of as possible (the "last" * section in the segment). |