samples/bpf: fix bpf loader
authorAlexei Starovoitov <ast@fb.com>
Wed, 23 Nov 2016 00:52:09 +0000 (16:52 -0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 24 Nov 2016 21:04:52 +0000 (16:04 -0500)
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 <ast@kernel.org>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
samples/bpf/bpf_load.c

index 97913e109b144f9f02491c1557ff179171d05318..62f54d6eb8bf5c3381662ac76891c2aba3c64e83 100644 (file)
@@ -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;