[PATCH v2] tracing: Fix out of bounds write in get_trace_buf

From: Qiujun Huang
Date: Thu Oct 29 2020 - 11:33:18 EST


The boundary condition should be 3 as we access
buffer[buffer->nesting][0].

Fixes: e2ace001176dc ("tracing: Choose static tp_printk buffer by explicit nesting count")
Signed-off-by: Qiujun Huang <hqjagain@xxxxxxxxx>
---
v2:
Fix a typo in the title.
---
kernel/trace/trace.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index 528971714fc6..196a4b7de48a 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -3125,7 +3125,7 @@ static char *get_trace_buf(void)
{
struct trace_buffer_struct *buffer = this_cpu_ptr(trace_percpu_buffer);

- if (!buffer || buffer->nesting >= 4)
+ if (!buffer || buffer->nesting >= 3)
return NULL;

buffer->nesting++;
--
2.17.1