From 3942ee1f7bc754dd0dd9ae79f89d0f2635be334f Mon Sep 17 00:00:00 2001 From: David Lamparter Date: Wed, 10 Nov 2021 15:30:07 +0100 Subject: [PATCH] lib: fix elf_py TLS section handling ... need to ignore TLS sections, their address is effectively meaningless but can overlap other sections we actually need to access. Signed-off-by: David Lamparter [Retrieved from: https://github.com/FRRouting/frr/commit/3942ee1f7bc754dd0dd9ae79f89d0f2635be334f] Signed-off-by: Fabrice Fontaine --- lib/elf_py.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/elf_py.c b/lib/elf_py.c index 1c306893ad8..f230add6957 100644 --- a/lib/elf_py.c +++ b/lib/elf_py.c @@ -636,6 +636,9 @@ static Elf_Scn *elf_find_addr(struct elffile *ef, uint64_t addr, size_t *idx) Elf_Scn *scn = elf_getscn(ef->elf, i); GElf_Shdr _shdr, *shdr = gelf_getshdr(scn, &_shdr); + /* virtual address is kinda meaningless for TLS sections */ + if (shdr->sh_flags & SHF_TLS) + continue; if (addr < shdr->sh_addr || addr >= shdr->sh_addr + shdr->sh_size) continue;