Fix: don't close the metadata FD if a FP is passed
[babeltrace.git] / formats / ctf / ctf.c
index 69600d1f8ca1b6e21e858eee326a2c236e0b2165..c369d8d36487ae79980a1caa747a79a4f2f916ec 100644 (file)
@@ -1011,6 +1011,7 @@ int ctf_open_trace_metadata_read(struct ctf_trace *td,
 
        if (metadata_fp) {
                fp = metadata_fp;
+               metadata_stream->pos.fd = -1;
        } else {
                td->metadata = &metadata_stream->parent;
                metadata_stream->pos.fd = openat(td->dirfd, "metadata", O_RDONLY);
@@ -1090,7 +1091,8 @@ end_packet_read:
                fclose(fp);
        free(buf);
 end_stream:
-       close(metadata_stream->pos.fd);
+       if (metadata_stream->pos.fd >= 0)
+               close(metadata_stream->pos.fd);
        if (ret)
                g_free(metadata_stream);
        return ret;
This page took 0.023042 seconds and 4 git commands to generate.