Alexei Starovoitov 19de99f70b bpf: fix matching of data/data_end in verifier
The ctx structure passed into bpf programs is different depending on bpf
program type. The verifier incorrectly marked ctx->data and ctx->data_end
access based on ctx offset only. That caused loads in tracing programs
int bpf_prog(struct pt_regs *ctx) { .. ctx->ax .. }
to be incorrectly marked as PTR_TO_PACKET which later caused verifier
to reject the program that was actually valid in tracing context.
Fix this by doing program type specific matching of ctx offsets.

Fixes: 969bf05eb3ce ("bpf: direct packet access")
Reported-by: Sasha Goldshtein <goldshtn@gmail.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-06-15 23:37:54 -07:00
..
2016-02-16 20:21:48 -05:00
2015-04-02 14:04:59 -04:00
2016-02-21 22:00:28 -05:00
2015-05-17 23:41:11 -04:00
2015-11-22 11:54:10 -05:00
2016-05-10 16:05:12 -04:00
2016-05-03 16:02:36 -04:00
2015-10-26 22:24:22 -07:00
2015-10-08 05:26:35 -07:00