From 56d4183046837973efe9daa210edb9444d97dfd4 Mon Sep 17 00:00:00 2001 From: jiabin Date: Mon, 23 Dec 2019 11:17:25 -0800 Subject: [PATCH] Check if calling uid is system uid for setAllowedPolicyCapture. AudioSystem.setAllowedPolicyCapture is only called from audio service. In that case, checking if the calling uid is system uid to before taking action. Bug: 145115448 Test: dumpsys audio, query active playback configuration Change-Id: I614ac881ecde6bad13f22f1382de701f314a7ada Merged-In: I614ac881ecde6bad13f22f1382de701f314a7ada (cherry picked from commit 140a34fbfe829542c2c3651656d5c595201b3b4a) --- media/libaudioclient/IAudioPolicyService.cpp | 3 ++- services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp | 5 ----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/media/libaudioclient/IAudioPolicyService.cpp b/media/libaudioclient/IAudioPolicyService.cpp index 64f0aca6cd..2fb9491a06 100644 --- a/media/libaudioclient/IAudioPolicyService.cpp +++ b/media/libaudioclient/IAudioPolicyService.cpp @@ -1346,7 +1346,8 @@ status_t BnAudioPolicyService::onTransact( case GET_OFFLOAD_FORMATS_A2DP: case LIST_AUDIO_VOLUME_GROUPS: case GET_VOLUME_GROUP_FOR_ATTRIBUTES: - case SET_RTT_ENABLED: { + case SET_RTT_ENABLED: + case SET_ALLOWED_CAPTURE_POLICY: { if (!isServiceUid(IPCThreadState::self()->getCallingUid())) { ALOGW("%s: transaction %d received from PID %d unauthorized UID %d", __func__, code, IPCThreadState::self()->getCallingPid(), diff --git a/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp b/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp index fa8da8916e..20e1c9e8ba 100644 --- a/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp +++ b/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp @@ -976,11 +976,6 @@ status_t AudioPolicyService::setAllowedCapturePolicy(uid_t uid, audio_flags_mask ALOGV("%s() mAudioPolicyManager == NULL", __func__); return NO_INIT; } - uint_t callingUid = IPCThreadState::self()->getCallingUid(); - if (uid != callingUid) { - ALOGD("%s() uid invalid %d != %d", __func__, uid, callingUid); - return PERMISSION_DENIED; - } return mAudioPolicyManager->setAllowedCapturePolicy(uid, capturePolicy); }