diff options
author | Alexei Starovoitov <ast@fb.com> | 2016-11-22 16:52:09 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-11-24 16:04:52 -0500 |
commit | db6a71dd9a75fb07f6758582299acfe1ab5827dc (patch) | |
tree | c666faa713221f3177d849f99b16ad3428d7d684 /samples/bpf | |
parent | d2b024d32d6e6f704633a8a474bd883cf9e25254 (diff) | |
download | op-kernel-dev-db6a71dd9a75fb07f6758582299acfe1ab5827dc.zip op-kernel-dev-db6a71dd9a75fb07f6758582299acfe1ab5827dc.tar.gz |
samples/bpf: fix bpf loader
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>
Diffstat (limited to 'samples/bpf')
-rw-r--r-- | samples/bpf/bpf_load.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/samples/bpf/bpf_load.c b/samples/bpf/bpf_load.c index 97913e1..62f54d6 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; |