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 <jdesfossez@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
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);
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;