diff options
author | Steven Rostedt (VMware) <rostedt@goodmis.org> | 2017-02-02 17:58:18 -0500 |
---|---|---|
committer | Steven Rostedt (VMware) <rostedt@goodmis.org> | 2017-02-03 10:59:31 -0500 |
commit | 0e684b6578ee463ecb5c9a1cd0c20069f063d9f0 (patch) | |
tree | d980b1f4016c9349987b299c5f61bcbc091ad256 | |
parent | ae98d27afc3bde5a48f440d905317602a5cfb0d2 (diff) | |
download | linux-0e684b6578ee463ecb5c9a1cd0c20069f063d9f0.tar.gz linux-0e684b6578ee463ecb5c9a1cd0c20069f063d9f0.tar.bz2 linux-0e684b6578ee463ecb5c9a1cd0c20069f063d9f0.zip |
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>
-rw-r--r-- | kernel/trace/trace.c | 1 |
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; } /* |