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

Commit b7199080 authored by Atneya Nair's avatar Atneya Nair
Browse files

audio: Fix ServiceUtil permission util uid

We check the calling uid for the permission helpers for
MODIFY_AUDIO_ROUTING and MODIFY_DEFAULT_AUDIO_EFFECTS which take an
attribution source, which is incorrect.

Change to using the passed uid.

Test: CtsMediaAudioTestCases
Bug: 360389515
Flag: EXEMPT bugfix
Change-Id: I7a94328847071a4af5d160711607b8ee55458a13
parent ef49519f
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -286,7 +286,7 @@ bool modifyAudioRoutingAllowed() {
bool modifyAudioRoutingAllowed(const AttributionSourceState& attributionSource) {
    uid_t uid = VALUE_OR_FATAL(aidl2legacy_int32_t_uid_t(attributionSource.uid));
    pid_t pid = VALUE_OR_FATAL(aidl2legacy_int32_t_pid_t(attributionSource.pid));
    if (isAudioServerUid(IPCThreadState::self()->getCallingUid())) return true;
    if (isAudioServerUid(uid)) return true;
    // IMPORTANT: Use PermissionCache - not a runtime permission and may not change.
    bool ok = PermissionCache::checkPermission(sModifyAudioRouting, pid, uid);
    if (!ok) ALOGE("%s(): android.permission.MODIFY_AUDIO_ROUTING denied for uid %d",
@@ -301,7 +301,7 @@ bool modifyDefaultAudioEffectsAllowed() {
bool modifyDefaultAudioEffectsAllowed(const AttributionSourceState& attributionSource) {
    uid_t uid = VALUE_OR_FATAL(aidl2legacy_int32_t_uid_t(attributionSource.uid));
    pid_t pid = VALUE_OR_FATAL(aidl2legacy_int32_t_pid_t(attributionSource.pid));
    if (isAudioServerUid(IPCThreadState::self()->getCallingUid())) return true;
    if (isAudioServerUid(uid)) return true;

    static const String16 sModifyDefaultAudioEffectsAllowed(
            "android.permission.MODIFY_DEFAULT_AUDIO_EFFECTS");