Fix: sink.ctf.fs: possible use-after-free
[babeltrace.git] / src / plugins / ctf / fs-sink / fs-sink-trace.c
index 3d647d2d769e858cdff2b47b839a6582b5985071..1b0bf390dd516a9c79f89bc21b9b17f0e5e31468 100644 (file)
@@ -528,14 +528,6 @@ void fs_sink_trace_destroy(struct fs_sink_trace *trace)
                trace->path = NULL;
        }
 
-       g_string_free(trace->metadata_path, TRUE);
-       trace->metadata_path = NULL;
-
-       fs_sink_ctf_trace_destroy(trace->trace);
-       trace->trace = NULL;
-       g_free(trace);
-
-end:
        if (fh) {
                int ret = fclose(fh);
 
@@ -546,10 +538,18 @@ end:
                }
        }
 
+       g_string_free(trace->metadata_path, TRUE);
+       trace->metadata_path = NULL;
+
+       fs_sink_ctf_trace_destroy(trace->trace);
+       trace->trace = NULL;
+       g_free(trace);
+
        if (tsdl) {
                g_string_free(tsdl, TRUE);
        }
 
+end:
        return;
 }
 
This page took 0.02497 seconds and 4 git commands to generate.