summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorSteven Rostedt (VMware) <rostedt@goodmis.org>2017-02-02 17:58:18 -0500
committerSteven Rostedt (VMware) <rostedt@goodmis.org>2017-02-03 10:59:31 -0500
commit0e684b6578ee463ecb5c9a1cd0c20069f063d9f0 (patch)
treed980b1f4016c9349987b299c5f61bcbc091ad256 /kernel
parentae98d27afc3bde5a48f440d905317602a5cfb0d2 (diff)
downloadlinux-0e684b6578ee463ecb5c9a1cd0c20069f063d9f0.tar.gz
linux-0e684b6578ee463ecb5c9a1cd0c20069f063d9f0.tar.xz
tracing: Reset parser->buffer to allow multiple "puts"
trace_parser_put() simply frees the allocated parser buffer. But it does not reset the pointer that was freed. This means that if trace_parser_put() is called on the same parser more than once, it will corrupt the allocation system. Setting parser->buffer to NULL after free allows it to be called more than once without any ill effect. Acked-by: Namhyung Kim <namhyung@kernel.org> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/trace/trace.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index d7449783987a..4589b67168fc 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -1193,6 +1193,7 @@ int trace_parser_get_init(struct trace_parser *parser, int size)
void trace_parser_put(struct trace_parser *parser)
{
kfree(parser->buffer);
+ parser->buffer = NULL;
}
/*