Thread (3 messages) 3 messages, 3 authors, 2016-12-05

Re: [PATCH net-next] bpf: Preserve const register type on const OR alu ops

From: David Miller <davem@davemloft.net>
Date: 2016-12-05 18:50:54

From: Alexei Starovoitov <redacted>
Date: Sat, 3 Dec 2016 12:31:33 -0800
From: Gianluca Borello <redacted>

Occasionally, clang (e.g. version 3.8.1) translates a sum between two
constant operands using a BPF_OR instead of a BPF_ADD. The verifier is
currently not handling this scenario, and the destination register type
becomes UNKNOWN_VALUE even if it's still storing a constant. As a result,
the destination register cannot be used as argument to a helper function
expecting a ARG_CONST_STACK_*, limiting some use cases.

Modify the verifier to handle this case, and add a few tests to make sure
all combinations are supported, and stack boundaries are still verified
even with BPF_OR.

Signed-off-by: Gianluca Borello <redacted>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Applied, but...
quoted hunk ↗ jump to hunk
diff --git a/tools/testing/selftests/bpf/.gitignore b/tools/testing/selftests/bpf/.gitignore
index 3c59f96e3ed8..071431bedde8 100644
--- a/tools/testing/selftests/bpf/.gitignore
+++ b/tools/testing/selftests/bpf/.gitignore
@@ -1,2 +1,3 @@
 test_verifier
 test_maps
+test_lru_map
This had nothing to do with this change, nor was it mentioned in the
commit message.

Please do not do this in the future.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help