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
diff --git a/media/utils/ServiceUtilities.cpp b/media/utils/ServiceUtilities.cpp
index 7bec8cf..ffcde42 100644
--- a/media/utils/ServiceUtilities.cpp
+++ b/media/utils/ServiceUtilities.cpp
@@ -286,7 +286,7 @@
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(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");