From 140a34fbfe829542c2c3651656d5c595201b3b4a 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 --- 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 87802a190f..a8137b75c9 100644 --- a/media/libaudioclient/IAudioPolicyService.cpp +++ b/media/libaudioclient/IAudioPolicyService.cpp @@ -1451,7 +1451,8 @@ status_t BnAudioPolicyService::onTransact( case SET_PREFERRED_DEVICE_FOR_PRODUCT_STRATEGY: case REMOVE_PREFERRED_DEVICE_FOR_PRODUCT_STRATEGY: case GET_PREFERRED_DEVICE_FOR_PRODUCT_STRATEGY: - case GET_DEVICES_FOR_ATTRIBUTES: { + case GET_DEVICES_FOR_ATTRIBUTES: + 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 68a2a8cf19..5f5173da94 100644 --- a/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp +++ b/services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp @@ -1008,11 +1008,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); }