From 20078f92628bbf42b3691adc99d0287b7e1f736b Mon Sep 17 00:00:00 2001 From: Francis Deslauriers Date: Thu, 9 May 2019 10:51:36 -0400 Subject: [PATCH] Fix: sink.ctf.fs: Dereference before null check MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit No need to check if `trace->metadata_path` is null at the point because it has been used by `fopen()` already and `abort()` is called if `fopen()` fails. CID 1401238 (#1 of 1): Dereference before null check (REVERSE_INULL) check_after_deref: Null-checking trace->metadata_path suggests that it may be null, but it has already been dereferenced on all paths leading to the check. Reported-by: Coverity (1401238) Dereference before null check Signed-off-by: Francis Deslauriers Change-Id: I90590323764810da8a6b4cfb37445a588befd242 Reviewed-on: https://review.lttng.org/c/babeltrace/+/1284 Reviewed-by: Jérémie Galarneau Tested-by: jenkins --- plugins/ctf/fs-sink/fs-sink-trace.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/ctf/fs-sink/fs-sink-trace.c b/plugins/ctf/fs-sink/fs-sink-trace.c index f0178774..c4e8aa18 100644 --- a/plugins/ctf/fs-sink/fs-sink-trace.c +++ b/plugins/ctf/fs-sink/fs-sink-trace.c @@ -489,6 +489,8 @@ void fs_sink_trace_destroy(struct fs_sink_trace *trace) tsdl = g_string_new(NULL); BT_ASSERT(tsdl); translate_trace_class_ctf_ir_to_tsdl(trace->tc, tsdl); + + BT_ASSERT(trace->metadata_path); fh = fopen(trace->metadata_path->str, "wb"); if (!fh) { BT_LOGF_ERRNO("In trace destruction listener: " @@ -514,10 +516,8 @@ void fs_sink_trace_destroy(struct fs_sink_trace *trace) trace->path = NULL; } - if (trace->metadata_path) { - g_string_free(trace->metadata_path, TRUE); - trace->metadata_path = NULL; - } + g_string_free(trace->metadata_path, TRUE); + trace->metadata_path = NULL; fs_sink_ctf_trace_class_destroy(trace->tc); trace->tc = NULL; -- 2.34.1