From: Julien Desfossez Date: Fri, 17 Aug 2012 11:57:53 +0000 (-0400) Subject: Fix: don't close the metadata FD if a FP is passed X-Git-Tag: v1.0.0-rc5~21 X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=commitdiff_plain;h=bcbfb8bf88ea9afbecd8a79708939fb8b79e5734 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 --- 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;