kumquat-buildroot/package/frr/0002-lib-fix-elf_py-TLS-section-handling.patch
Fabrice Fontaine 43c8f8b77b package/frr: fix elf_py TLS section handling
Fix the following build failure raised on mipsel, or1k, powerpc raised
since bump to version 8.1 in commit
ca2753fd47:

struct.error: unpack requires a buffer of 20 bytes

Fixes:
 - http://autobuild.buildroot.org/results/74f39c6f14e3f60babdcabceb5e42656f69cdaa7

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2022-03-07 20:12:30 +01:00

32 lines
1.1 KiB
Diff

From 3942ee1f7bc754dd0dd9ae79f89d0f2635be334f Mon Sep 17 00:00:00 2001
From: David Lamparter <equinox@opensourcerouting.org>
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 <equinox@opensourcerouting.org>
[Retrieved from:
https://github.com/FRRouting/frr/commit/3942ee1f7bc754dd0dd9ae79f89d0f2635be334f]
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
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;