diff options
author | William Tu <u9012063@gmail.com> | 2017-02-04 17:37:29 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-02-07 04:50:04 +0100 |
commit | 63dfef75ed75364901d7caa52c6420cec3e73519 (patch) | |
tree | 8c3065d18a1b80da112ec1ee9a1074240cd100ca /net/bridge | |
parent | bpf: test for AND edge cases (diff) | |
download | linux-63dfef75ed75364901d7caa52c6420cec3e73519.tar.xz linux-63dfef75ed75364901d7caa52c6420cec3e73519.zip |
bpf: enable verifier to add 0 to packet ptr
The patch fixes the case when adding a zero value to the packet
pointer. The zero value could come from src_reg equals type
BPF_K or CONST_IMM. The patch fixes both, otherwise the verifer
reports the following error:
[...]
R0=imm0,min_value=0,max_value=0
R1=pkt(id=0,off=0,r=4)
R2=pkt_end R3=fp-12
R4=imm4,min_value=4,max_value=4
R5=pkt(id=0,off=4,r=4)
269: (bf) r2 = r0 // r2 becomes imm0
270: (77) r2 >>= 3
271: (bf) r4 = r1 // r4 becomes pkt ptr
272: (0f) r4 += r2 // r4 += 0
addition of negative constant to packet pointer is not allowed
Signed-off-by: William Tu <u9012063@gmail.com>
Signed-off-by: Mihai Budiu <mbudiu@vmware.com>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Cc: Alexei Starovoitov <ast@kernel.org>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/bridge')
0 files changed, 0 insertions, 0 deletions