Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 56d41830 authored by jiabin's avatar jiabin Committed by Nadav Bar
Browse files

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 140a34fb)
parent 45d80595
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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(),
+0 −5
Original line number Diff line number Diff line
@@ -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);
}