From 81ad5ecd211d0f30225714ae8ee61c4d76dbcf56 Mon Sep 17 00:00:00 2001 From: Phil Burk Date: Fri, 1 Sep 2017 10:45:41 -0700 Subject: [PATCH] audioflinger: pass return code up from startClient Was ignoring failed start. Bug: 65262790 Test: see bug Change-Id: I0b1d19adfd50d2b00d86bb82f278b720fcbacdb1 --- services/audioflinger/Threads.cpp | 4 ++++ services/oboeservice/AAudioServiceStreamMMAP.cpp | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/services/audioflinger/Threads.cpp b/services/audioflinger/Threads.cpp index d951e93b2a..297608c221 100644 --- a/services/audioflinger/Threads.cpp +++ b/services/audioflinger/Threads.cpp @@ -7633,6 +7633,10 @@ status_t AudioFlinger::MmapThread::start(const AudioClient& client, return NO_ERROR; } + if (!isOutput() && !recordingAllowed(client.packageName, client.clientPid, client.clientUid)) { + return PERMISSION_DENIED; + } + audio_port_handle_t portId = AUDIO_PORT_HANDLE_NONE; audio_io_handle_t io = mId; diff --git a/services/oboeservice/AAudioServiceStreamMMAP.cpp b/services/oboeservice/AAudioServiceStreamMMAP.cpp index 43595a4a77..47041c5033 100644 --- a/services/oboeservice/AAudioServiceStreamMMAP.cpp +++ b/services/oboeservice/AAudioServiceStreamMMAP.cpp @@ -92,7 +92,7 @@ aaudio_result_t AAudioServiceStreamMMAP::start() { aaudio_result_t result = AAudioServiceStreamBase::start(); if (!mInService && result == AAUDIO_OK) { - startClient(mMmapClient, &mClientHandle); + result = startClient(mMmapClient, &mClientHandle); } return result; } @@ -107,7 +107,7 @@ aaudio_result_t AAudioServiceStreamMMAP::pause() { aaudio_result_t result = AAudioServiceStreamBase::pause(); // TODO put before base::pause()? if (!mInService) { - stopClient(mClientHandle); + (void) stopClient(mClientHandle); } return result; } @@ -119,7 +119,7 @@ aaudio_result_t AAudioServiceStreamMMAP::stop() { aaudio_result_t result = AAudioServiceStreamBase::stop(); // TODO put before base::stop()? if (!mInService) { - stopClient(mClientHandle); + (void) stopClient(mClientHandle); } return result; }