summaryrefslogtreecommitdiff
path: root/cmds/incidentd/src
diff options
context:
space:
mode:
authorMike Ma <yanmin@google.com>2020-03-31 01:15:54 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-03-31 01:15:54 +0000
commit69a4e6f1bfb58f1731b060471eefbeb4ef1a92d5 (patch)
treea23ccff826b58222a922470c63d4f4e95b0afb2d /cmds/incidentd/src
parentafad23a1be3a9f7d218cc0435a9ff79ba35790d2 (diff)
parent66639a4f54cc04c10f26c3a84bd57d8f07b01c79 (diff)
Merge "Fix a race condition on ReportHandler::mBatch" into rvc-dev am: 66639a4f54
Change-Id: If4b1c3be6bdbcc786dd31971aefe80f18d850474
Diffstat (limited to 'cmds/incidentd/src')
-rw-r--r--cmds/incidentd/src/IncidentService.cpp2
-rw-r--r--cmds/incidentd/src/Section.cpp2
2 files changed, 3 insertions, 1 deletions
diff --git a/cmds/incidentd/src/IncidentService.cpp b/cmds/incidentd/src/IncidentService.cpp
index 6c2b8551bf73..9e6d0a23de10 100644
--- a/cmds/incidentd/src/IncidentService.cpp
+++ b/cmds/incidentd/src/IncidentService.cpp
@@ -152,6 +152,7 @@ void ReportHandler::handleMessage(const Message& message) {
}
void ReportHandler::schedulePersistedReport(const IncidentReportArgs& args) {
+ unique_lock<mutex> lock(mLock);
mBatch->addPersistedReport(args);
mHandlerLooper->removeMessages(this, WHAT_TAKE_REPORT);
mHandlerLooper->sendMessage(this, Message(WHAT_TAKE_REPORT));
@@ -159,6 +160,7 @@ void ReportHandler::schedulePersistedReport(const IncidentReportArgs& args) {
void ReportHandler::scheduleStreamingReport(const IncidentReportArgs& args,
const sp<IIncidentReportStatusListener>& listener, int streamFd) {
+ unique_lock<mutex> lock(mLock);
mBatch->addStreamingReport(args, listener, streamFd);
mHandlerLooper->removeMessages(this, WHAT_TAKE_REPORT);
mHandlerLooper->sendMessage(this, Message(WHAT_TAKE_REPORT));
diff --git a/cmds/incidentd/src/Section.cpp b/cmds/incidentd/src/Section.cpp
index dec9cb0ad4ff..114cbb8d6460 100644
--- a/cmds/incidentd/src/Section.cpp
+++ b/cmds/incidentd/src/Section.cpp
@@ -755,7 +755,7 @@ status_t TombstoneSection::BlockingCall(unique_fd& pipeWriteFd) const {
if (stat(link_name, &fileStat) != OK) {
continue;
}
- size_t exe_name_len = readlink(link_name, exe_name, EXE_NAME_LEN);
+ ssize_t exe_name_len = readlink(link_name, exe_name, EXE_NAME_LEN);
if (exe_name_len < 0 || exe_name_len >= EXE_NAME_LEN) {
ALOGE("[%s] Can't read '%s': %s", name.string(), link_name, strerror(errno));
continue;