android_kernel_sony_sdm845/kernel/trace
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jack Pham f123c9aada trace: ipc_logging: Avoid buffer overflow in ipc_log_string()
In ipc_log_string() the return value from vsnprintf(), data_size,
is used to increment ectxt.offset. However, this length could
actually be much larger than that of ectxt.buff itself. This is a
typical mistake of [v]snprintf() usage [1], in that it returns
not the number of characters written but how many characters
*would* have been written regardless of whether it was truncated.
The result is that even though ectxt.buff itself is not overrun,
the incorrect size in ectxt.offset will be later used as the length
parameter when memcpy()'ing to the ipc_log_page's data, overflowing
that memory and beyond. The write_page's write_offset would also
indicate an out-of-bounds (greater than PAGE_SIZE) length.

The fix is simple: use vscnprintf() instead of vsnprintf().

[1] https://lwn.net/Articles/69419/

Change-Id: I2e9d44e74f5f30a009732e31a554d82e31946999
Signed-off-by: Jack Pham <jackp@codeaurora.org>
2017-04-04 10:19:24 -07:00
..
blktrace.c block: Fix secure erase 2016-08-16 09:16:51 -06:00
bpf_trace.c bpf: add BPF_CALL_x macros for declaring helpers 2016-09-09 19:36:04 -07:00
ftrace.c ftrace: Add more checks for FTRACE_FL_DISABLED in processing ip records 2016-11-14 16:31:49 -05:00
gpu-traces.c ANDROID: trace/events: add gpu trace events 2017-01-27 13:51:39 -08:00
ipc_logging.c trace: ipc_logging: Avoid buffer overflow in ipc_log_string() 2017-04-04 10:19:24 -07:00
ipc_logging_debug.c trace: Add snapshot of ipc_logging driver 2016-11-10 10:49:25 -08:00
ipc_logging_private.h trace: Add snapshot of ipc_logging driver 2016-11-10 10:49:25 -08:00
Kconfig trace: cpu_freq_switch: Add profiler for CPU frequency switch times 2017-03-20 12:16:04 -07:00
Makefile trace: cpu_freq_switch: Add profiler for CPU frequency switch times 2017-03-20 12:16:04 -07:00
msm_rtb.c trace: rtb: add msm_rtb register tracing feature snapshot 2016-08-19 13:31:03 -07: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 ring_buffer: Remove unneeded smp_wmb() before wakeup of reader benchmark 2015-11-03 16:19:02 -05:00
rpm-traces.c
trace.c Merge remote-tracking branch '4.9/tmp-47c0adf' into 4.9 2017-03-15 13:38:21 -07:00
trace.h ANDROID: trace: Add an option to show tgids in trace output 2017-01-27 13:51:40 -08:00
trace_benchmark.c tracing: Only benchmark the time tracepoints take if tracing is on 2015-11-02 13:34:58 -05:00
trace_benchmark.h
trace_branch.c tracing: Remove {start,stop}_branch_trace 2015-10-21 10:10:09 -04:00
trace_clock.c
trace_cpu_freq_switch.c trace: cpu_freq_switch: Add profiler for CPU frequency switch times 2017-03-20 12:16:04 -07:00
trace_entries.h tracing: Add NMI tracing in hwlat detector 2016-09-02 12:47:55 -04:00
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 coresight: enable stm logging for trace events, marker and printk 2016-10-03 17:35:08 -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: Fix use-after-free in hist_register_trigger() 2016-08-02 15:16:30 -04:00
trace_events_trigger.c tracing: Call traceoff trigger after event is recorded 2016-09-23 09:47:59 -04:00
trace_export.c tracing: ftrace_event_is_function() can return boolean 2015-11-02 14:28:05 -05:00
trace_functions.c ftrace: Have set_ftrace_pid use the bitmap like events do 2016-06-20 09:54:19 -04:00
trace_functions_graph.c This is the 4.9.6 stable release 2017-01-31 13:55:27 -08:00
trace_hwlat.c tracing: Fix hwlat kthread migration 2017-02-09 08:08:28 +01: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 tracing: Move trace_flags from global to a trace_array field 2015-09-30 15:22:55 -04:00
trace_kprobe.c ftrace: kprobe: uprobe: Add x8/x16/x32/x64 for hexadecimal types 2016-08-23 15:38:09 -03:00
trace_mmiotrace.c tracing: Expose CPU physical addresses (resource values) for PCI devices 2016-06-20 09:54:22 -04: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 ANDROID: trace: fix compilation for 4.1 2017-01-27 13:51:42 -08:00
trace_output.h tracing: Turn seq_print_user_ip() into a static function 2015-09-28 10:16:12 -04:00
trace_printk.c tracing: Handle NULL formats in hold_module_trace_bprintk_format() 2016-06-20 09:46:12 -04:00
trace_probe.c ftrace: kprobe: uprobe: Show u8/u16/u32/u64 types in decimal 2016-08-23 17:06:38 -03:00
trace_probe.h ftrace: kprobe: uprobe: Show u8/u16/u32/u64 types in decimal 2016-08-23 17:06:38 -03:00
trace_sched_switch.c sched/core: Fix trace_sched_switch() 2015-10-06 17:08:15 +02:00
trace_sched_wakeup.c Most of the changes are clean ups and small fixes. Some of them have 2015-11-06 13:30:20 -08:00
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 Merge remote-tracking branch '4.4/tmp-730d8a5' into 4.8 2016-10-31 15:09:53 -07:00
trace_uprobe.c Merge remote-tracking branch '4.4/tmp-730d8a5' into 4.8 2016-10-31 15:09:53 -07: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