diff options
author | Daniel Borkmann <daniel@iogearbox.net> | 2017-12-14 23:07:25 +0300 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2017-12-15 20:19:35 +0300 |
commit | 04514d13222f2c4c91adf0ecb21004cec3388795 (patch) | |
tree | 18f3909ec2918ce8b46cac6ed9d76013dc603022 /net | |
parent | 87338c8e2cbb317b5f757e6172f94e2e3799cd20 (diff) | |
download | linux-04514d13222f2c4c91adf0ecb21004cec3388795.tar.xz |
bpf: guarantee r1 to be ctx in case of bpf_helper_changes_pkt_data
Some JITs don't cache skb context on stack in prologue, so when
LD_ABS/IND is used and helper calls yield bpf_helper_changes_pkt_data()
as true, then they temporarily save/restore skb pointer. However,
the assumption that skb always has to be in r1 is a bit of a
gamble. Right now it turned out to be true for all helpers listed
in bpf_helper_changes_pkt_data(), but lets enforce that from verifier
side, so that we make this a guarantee and bail out if the func
proto is misconfigured in future helpers.
In case of BPF helper calls from cBPF, bpf_helper_changes_pkt_data()
is completely unrelevant here (since cBPF is context read-only) and
therefore always false.
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'net')
0 files changed, 0 insertions, 0 deletions