alistair23-linux/kernel/trace
Sargun Dhillon 96ae522795 bpf: Add bpf_probe_write_user BPF helper to be called in tracers
This allows user memory to be written to during the course of a kprobe.
It shouldn't be used to implement any kind of security mechanism
because of TOC-TOU attacks, but rather to debug, divert, and
manipulate execution of semi-cooperative processes.

Although it uses probe_kernel_write, we limit the address space
the probe can write into by checking the space with access_ok.
We do this as opposed to calling copy_to_user directly, in order
to avoid sleeping. In addition we ensure the threads's current fs
/ segment is USER_DS and the thread isn't exiting nor a kernel thread.

Given this feature is meant for experiments, and it has a risk of
crashing the system, and running programs, we print a warning on
when a proglet that attempts to use this helper is installed,
along with the pid and process name.

Signed-off-by: Sargun Dhillon <sargun@sargun.me>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-07-25 18:07:48 -07:00
..
blktrace.c blktrace: add missed mask name 2016-05-10 08:41:36 -06:00
bpf_trace.c bpf: Add bpf_probe_write_user BPF helper to be called in tracers 2016-07-25 18:07:48 -07:00
ftrace.c Three more changes. 2016-05-22 19:40:39 -07:00
Kconfig tracing: Add 'hist' event trigger command 2016-04-19 12:16:14 -04:00
Makefile tracing: Add 'hist' event trigger command 2016-04-19 12:16:14 -04:00
power-traces.c cpufreq: schedutil: New governor based on scheduler utilization data 2016-04-02 01:09:12 +02:00
ring_buffer.c ring-buffer: Prevent overflow of size in ring_buffer_resize() 2016-05-13 16:44:20 -04:00
ring_buffer_benchmark.c
rpm-traces.c
trace.c tracing: Use temp buffer when filtering events 2016-05-03 17:59:24 -04:00
trace.h tracing: Use temp buffer when filtering events 2016-05-03 17:59:24 -04:00
trace_benchmark.c
trace_benchmark.h
trace_branch.c
trace_clock.c
trace_entries.h
trace_event_perf.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2016-05-17 16:26:30 -07:00
trace_events.c This includes two new updates for the ftrace infrastructure. 2016-05-18 18:55:19 -07:00
trace_events_filter.c tracing: Use temp buffer when filtering events 2016-05-03 17:59:24 -04:00
trace_events_filter_test.h
trace_events_hist.c tracing: Add check for NULL event field when creating hist field 2016-04-26 09:40:29 -04:00
trace_events_trigger.c tracing: Add support for named triggers 2016-04-19 18:56:00 -04:00
trace_export.c
trace_functions.c tracing: Make tracer_flags use the right set_flag callback 2016-03-08 11:19:08 -05:00
trace_functions_graph.c arch, ftrace: for KASAN put hard/soft IRQ entries into separate sections 2016-03-25 16:37:42 -07:00
trace_irqsoff.c tracing: Remove redundant reset per-CPU buff in irqsoff tracer 2016-03-18 16:39:11 -04:00
trace_kdb.c
trace_kprobe.c perf: split perf_trace_buf_prepare into alloc and update parts 2016-04-07 21:04:26 -04:00
trace_mmiotrace.c kernel/...: convert pr_warning to pr_warn 2016-03-22 15:36:02 -07:00
trace_nop.c tracing: Fix typoes in code comment and printk in trace_nop.c 2016-03-08 11:23:57 -05:00
trace_output.c tracing: Record and show NMI state 2016-03-22 18:04:10 -04:00
trace_output.h
trace_printk.c tracing: Handle NULL formats in hold_module_trace_bprintk_format() 2016-06-20 09:46:12 -04:00
trace_probe.c kernel/...: convert pr_warning to pr_warn 2016-03-22 15:36:02 -07:00
trace_probe.h
trace_sched_switch.c
trace_sched_wakeup.c
trace_selftest.c
trace_selftest_dynamic.c
trace_seq.c
trace_stack.c tracing, kasan: Silence Kasan warning in check_stack of stack_tracer 2016-02-19 12:36:44 -05:00
trace_stat.c kernel/...: convert pr_warning to pr_warn 2016-03-22 15:36:02 -07:00
trace_stat.h
trace_syscalls.c perf: split perf_trace_buf_prepare into alloc and update parts 2016-04-07 21:04:26 -04:00
trace_uprobe.c perf: split perf_trace_buf_prepare into alloc and update parts 2016-04-07 21:04:26 -04:00
tracing_map.c tracing: Handle tracing_map_alloc_elts() error path correctly 2016-04-26 09:40:30 -04:00
tracing_map.h tracing: Update some tracing_map constants and comments 2016-04-19 12:16:06 -04:00