rtla: Fix double free
authorAndreas Schwab <schwab@suse.de>
Mon, 25 Jul 2022 15:12:18 +0000 (17:12 +0200)
committerSteven Rostedt (Google) <rostedt@goodmis.org>
Sun, 31 Jul 2022 21:03:38 +0000 (17:03 -0400)
Avoid double free by making trace_instance_destroy indempotent.  When
trace_instance_init fails, it calls trace_instance_destroy, but its only
caller osnoise_destroy_tool calls it again.

Link: https://lkml.kernel.org/r/mvmilnlkyzx.fsf_-_@suse.de
Fixes: 0605bf009f18 ("rtla: Add osnoise tool")
Signed-off-by: Andreas Schwab <schwab@suse.de>
Acked-by: Daniel Bristot de Oliveira <bristot@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
tools/tracing/rtla/src/trace.c

index 5784c9f..e1ba6d9 100644 (file)
@@ -134,13 +134,18 @@ void trace_instance_destroy(struct trace_instance *trace)
        if (trace->inst) {
                disable_tracer(trace->inst);
                destroy_instance(trace->inst);
+               trace->inst = NULL;
        }
 
-       if (trace->seq)
+       if (trace->seq) {
                free(trace->seq);
+               trace->seq = NULL;
+       }
 
-       if (trace->tep)
+       if (trace->tep) {
                tep_free(trace->tep);
+               trace->tep = NULL;
+       }
 }
 
 /*