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-04-13 10:41:10 +02:00
2016-05-27 15:26:11 -07:00
2016-05-23 13:51:10 -07:00
2016-05-11 19:36:28 -04:00
2016-06-15 22:15:21 -07:00
2016-06-15 22:15:21 -07:00
2015-10-23 03:05:19 -07:00
2016-05-29 22:33:25 -07:00
2016-06-07 15:30:21 -07:00
2016-06-10 23:22:55 -07:00
2016-05-26 10:33:33 -07:00
2016-06-09 23:41:03 -07:00
2016-05-08 23:46:14 -04:00