summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jeffrey Huang <jeffreyhuang@google.com> 2021-03-31 19:57:57 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2021-03-31 19:57:57 +0000
commit090ceb3af9845ace914a3e1eb91507d83c9678e5 (patch)
treec5d480fc6466169e8332380a13f832c225556701
parent5c4553b29f17cc69bcbf3311011f2abafab3a4da (diff)
parentab40ab67cebaadba645382f7850abe338504d31f (diff)
Merge "Close the FD after opening the file" into sc-dev
-rw-r--r--cmds/incidentd/src/WorkDirectory.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/cmds/incidentd/src/WorkDirectory.cpp b/cmds/incidentd/src/WorkDirectory.cpp
index 1944d6ecc720..23d80d7953b7 100644
--- a/cmds/incidentd/src/WorkDirectory.cpp
+++ b/cmds/incidentd/src/WorkDirectory.cpp
@@ -400,6 +400,7 @@ status_t ReportFile::startFilteringData(int writeFd, const IncidentReportArgs& a
if (dataFd < 0) {
ALOGW("Error opening incident report '%s' %s", getDataFileName().c_str(), strerror(-errno));
close(writeFd);
+ close(dataFd);
return -errno;
}
@@ -409,6 +410,7 @@ status_t ReportFile::startFilteringData(int writeFd, const IncidentReportArgs& a
ALOGW("Error running fstat incident report '%s' %s", getDataFileName().c_str(),
strerror(-errno));
close(writeFd);
+ close(dataFd);
return -errno;
}
if (st.st_size != mEnvelope.data_file_size()) {
@@ -418,6 +420,7 @@ status_t ReportFile::startFilteringData(int writeFd, const IncidentReportArgs& a
ALOGW("Removing incident report");
mWorkDirectory->remove(this);
close(writeFd);
+ close(dataFd);
return BAD_VALUE;
}
@@ -427,11 +430,13 @@ status_t ReportFile::startFilteringData(int writeFd, const IncidentReportArgs& a
if (!zipPipe.init()) {
ALOGE("[ReportFile] Failed to setup pipe for gzip");
close(writeFd);
+ close(dataFd);
return -errno;
}
int status = 0;
zipPid = fork_execute_cmd((char* const*)GZIP, zipPipe.readFd().release(), writeFd, &status);
close(writeFd);
+ close(dataFd);
if (zipPid < 0 || status != 0) {
ALOGE("[ReportFile] Failed to fork and exec gzip");
return status;
@@ -459,6 +464,7 @@ status_t ReportFile::startFilteringData(int writeFd, const IncidentReportArgs& a
}
close(writeFd);
+ close(dataFd);
if (zipPid > 0) {
status_t err = wait_child(zipPid, /* timeout_ms= */ 10 * 1000);
if (err != 0) {