Thread (62 messages) read the whole thread 62 messages, 8 authors, 2014-07-05

Re: [PATCH RFC net-next 08/14] bpf: add eBPF verifier

From: Daniel Borkmann <hidden>
Date: 2014-07-01 08:05:55
Also in: linux-api, lkml

On 06/28/2014 02:06 AM, Alexei Starovoitov wrote:
Safety of eBPF programs is statically determined by the verifier, which detects:
- loops
- out of range jumps
- unreachable instructions
- invalid instructions
- uninitialized register access
- uninitialized stack access
- misaligned stack access
- out of range stack access
- invalid calling convention
...
More details in Documentation/networking/filter.txt

Signed-off-by: Alexei Starovoitov <ast-uqk4Ao+rVK5Wk0Htik3J/w@public.gmane.org>
---
...
  kernel/bpf/verifier.c               | 1431 +++++++++++++++++++++++++++++++++++
Looking at classic BPF verifier which checks safety of BPF
user space programs, it's roughly 200 loc. :-/
quoted hunk ↗ jump to hunk
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
new file mode 100644
...
+#define _(OP) ({ int ret = OP; if (ret < 0) return ret; })
...
+	_(get_map_info(env, map_id, &map));
...
+	_(size = bpf_size_to_bytes(bpf_size));
Nit: such macros should be removed, please.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help