summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Josh Gao <jmgao@google.com> 2018-09-04 11:12:04 -0700
committer Josh Gao <jmgao@google.com> 2018-09-04 11:12:04 -0700
commit3330d1208fc7cc43f133acd55e7e78aadfd64375 (patch)
treeab1ed4aabcb79dfac2a5088d6dcd71cbe3366002
parent608fa51d55ea09caa31c2a4ec2d365db858cd86f (diff)
statsd: fix double close.
Previously, fdopen was being called on a file descriptor that was owned by a unique_fd without releasing. This leads to a double close, since both fclose and the unique_fd destructor will try to close the fd. Bug: http://b/113880863 Test: treehugger Change-Id: I6f6f48d304861b5e4d7efee0d3ad0e30178a95a4
-rw-r--r--cmds/statsd/src/external/Perfetto.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/cmds/statsd/src/external/Perfetto.cpp b/cmds/statsd/src/external/Perfetto.cpp
index 05544837b752..c1f9a643e153 100644
--- a/cmds/statsd/src/external/Perfetto.cpp
+++ b/cmds/statsd/src/external/Perfetto.cpp
@@ -105,9 +105,9 @@ bool CollectPerfettoTraceAndUploadToDropbox(const PerfettoDetails& config,
readPipe.reset(); // Close the read end (owned by the child process).
- // Using fopen() because fwrite() has the right logic to chunking write()
+ // Using fdopen() because fwrite() has the right logic to chunking write()
// over a pipe (see __sfvwrite()).
- FILE* writePipeStream = fdopen(writePipe.get(), "wb");
+ FILE* writePipeStream = android::base::Fdopen(std::move(writePipe), "wb");
if (!writePipeStream) {
ALOGE("fdopen() failed while calling the Perfetto client: %s", strerror(errno));
return false;