llvm can emit relocations into sections other than program code
(like debug info sections). Ignore them during parsing of elf file

Signed-off-by: Alexei Starovoitov <a...@kernel.org>
---
 samples/bpf/bpf_load.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/samples/bpf/bpf_load.c b/samples/bpf/bpf_load.c
index 97913e109b14..62f54d6eb8bf 100644
--- a/samples/bpf/bpf_load.c
+++ b/samples/bpf/bpf_load.c
@@ -317,6 +317,10 @@ int load_bpf_file(char *path)
                                    &shdr_prog, &data_prog))
                                continue;
 
+                       if (shdr_prog.sh_type != SHT_PROGBITS ||
+                           !(shdr_prog.sh_flags & SHF_EXECINSTR))
+                               continue;
+
                        insns = (struct bpf_insn *) data_prog->d_buf;
 
                        processed_sec[shdr.sh_info] = true;
-- 
2.8.0

Reply via email to