audio HAL - fix UAFs

Bug: 185259758
Test: N/A
Change-Id: I5ec70b098a00746108e10ab39e966607d78c84ae
Merged-In: I5ec70b098a00746108e10ab39e966607d78c84ae
(cherry picked from commit a8ac7cf706)
This commit is contained in:
Mikhail Naganov
2021-04-16 18:54:28 +00:00
parent c73a52277f
commit bd78085f08
2 changed files with 8 additions and 8 deletions

View File

@@ -378,9 +378,9 @@ Return<void> StreamIn::prepareForReading(uint32_t frameSize,
}
// Create and launch the thread.
auto tempReadThread = std::make_unique<ReadThread>(
&mStopReadThread, mStream, tempCommandMQ.get(), tempDataMQ.get(),
tempStatusMQ.get(), tempElfGroup.get());
sp<ReadThread> tempReadThread =
new ReadThread(&mStopReadThread, mStream, tempCommandMQ.get(), tempDataMQ.get(),
tempStatusMQ.get(), tempElfGroup.get());
if (!tempReadThread->init()) {
ALOGW("failed to start reader thread: %s", strerror(-status));
sendError(Result::INVALID_ARGUMENTS);
@@ -396,7 +396,7 @@ Return<void> StreamIn::prepareForReading(uint32_t frameSize,
mCommandMQ = std::move(tempCommandMQ);
mDataMQ = std::move(tempDataMQ);
mStatusMQ = std::move(tempStatusMQ);
mReadThread = tempReadThread.release();
mReadThread = tempReadThread;
mEfGroup = tempElfGroup.release();
threadInfo.pid = getpid();
threadInfo.tid = mReadThread->getTid();

View File

@@ -353,9 +353,9 @@ Return<void> StreamOut::prepareForWriting(uint32_t frameSize,
}
// Create and launch the thread.
auto tempWriteThread = std::make_unique<WriteThread>(
&mStopWriteThread, mStream, tempCommandMQ.get(), tempDataMQ.get(),
tempStatusMQ.get(), tempElfGroup.get());
sp<WriteThread> tempWriteThread =
new WriteThread(&mStopWriteThread, mStream, tempCommandMQ.get(), tempDataMQ.get(),
tempStatusMQ.get(), tempElfGroup.get());
if (!tempWriteThread->init()) {
ALOGW("failed to start writer thread: %s", strerror(-status));
sendError(Result::INVALID_ARGUMENTS);
@@ -371,7 +371,7 @@ Return<void> StreamOut::prepareForWriting(uint32_t frameSize,
mCommandMQ = std::move(tempCommandMQ);
mDataMQ = std::move(tempDataMQ);
mStatusMQ = std::move(tempStatusMQ);
mWriteThread = tempWriteThread.release();
mWriteThread = tempWriteThread;
mEfGroup = tempElfGroup.release();
threadInfo.pid = getpid();
threadInfo.tid = mWriteThread->getTid();