blob: 7a89d61d068f5a60be569b34247500bd86240be7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#include <libelf/libelf.h>
#include <libelf/gelf.h>
#include <libelfu/libelfu.h>
int elfu_ePhdrContainsScn(GElf_Phdr *phdr, GElf_Shdr *shdr)
{
size_t secStart = shdr->sh_offset;
size_t secEnd = shdr->sh_offset + shdr->sh_size;
size_t segStart = phdr->p_offset;
size_t segEnd = phdr->p_offset + phdr->p_memsz;
if (secStart < segStart || secEnd > segEnd) {
return 0;
}
return 1;
}
|