diff options
author | Luke Nelson <lukenels@cs.washington.edu> | 2019-06-28 22:57:50 -0700 |
---|---|---|
committer | Daniel Borkmann <daniel@iogearbox.net> | 2019-07-03 11:14:28 +0200 |
commit | 6fa632e719eec4d1b1ebf3ddc0b2d667997b057b (patch) | |
tree | d2d6f3e67778c27a1e27c37059ac1b0a31122fd2 /tools/testing/selftests/bpf | |
parent | 68a8357ec15bdce55266e9fba8b8b3b8143fa7d2 (diff) | |
download | linux-6fa632e719eec4d1b1ebf3ddc0b2d667997b057b.tar.bz2 |
bpf, x32: Fix bug with ALU64 {LSH, RSH, ARSH} BPF_K shift by 0
The current x32 BPF JIT does not correctly compile shift operations when
the immediate shift amount is 0. The expected behavior is for this to
be a no-op.
The following program demonstrates the bug. The expexceted result is 1,
but the current JITed code returns 2.
r0 = 1
r1 = 1
r1 <<= 0
if r1 == 1 goto end
r0 = 2
end:
exit
This patch simplifies the code and fixes the bug.
Fixes: 03f5781be2c7 ("bpf, x86_32: add eBPF JIT compiler for ia32")
Co-developed-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Luke Nelson <luke.r.nels@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Diffstat (limited to 'tools/testing/selftests/bpf')
0 files changed, 0 insertions, 0 deletions