From bcbfb8bf88ea9afbecd8a79708939fb8b79e5734 Mon Sep 17 00:00:00 2001 From: Julien Desfossez Date: Fri, 17 Aug 2012 07:57:53 -0400 Subject: [PATCH] Fix: don't close the metadata FD if a FP is passed In ctf_open_trace_metadata_read if the metadata_fp is passed we must not close the metadata_stream->pos.fd which is zero in this case. Signed-off-by: Julien Desfossez Signed-off-by: Mathieu Desnoyers --- formats/ctf/ctf.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/formats/ctf/ctf.c b/formats/ctf/ctf.c index 69600d1f..c369d8d3 100644 --- a/formats/ctf/ctf.c +++ b/formats/ctf/ctf.c @@ -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; -- 2.34.1