19de99f70b
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:
|
||
---|---|---|
.. | ||
Makefile | ||
arraymap.c | ||
core.c | ||
hashtab.c | ||
helpers.c | ||
inode.c | ||
percpu_freelist.c | ||
percpu_freelist.h | ||
stackmap.c | ||
syscall.c | ||
verifier.c |