Loading services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp +34 −24 Original line number Diff line number Diff line Loading @@ -1577,17 +1577,20 @@ Status AudioPolicyService::listAudioPorts(media::AudioPortRole roleAidl, std::unique_ptr<audio_port_v7[]> ports(new audio_port_v7[num_ports]); unsigned int generation; const AttributionSourceState attributionSource = getCallingAttributionSource(); AutoCallerClear acc; { audio_utils::lock_guard _l(mMutex); if (mAudioPolicyManager == NULL) { return binderStatusFromStatusT(NO_INIT); } const AttributionSourceState attributionSource = getCallingAttributionSource(); AutoCallerClear acc; // AudioPolicyManager->listAudioPorts makes a deep copy of port structs into ports // so it is safe to access after releasing the mutex RETURN_IF_BINDER_ERROR(binderStatusFromStatusT( mAudioPolicyManager->listAudioPorts(role, type, &num_ports, ports.get(), &generation))); mAudioPolicyManager->listAudioPorts( role, type, &num_ports, ports.get(), &generation))); numPortsReq = std::min(numPortsReq, num_ports); } if (mustAnonymizeBluetoothAddress(attributionSource, String16(__func__))) { for (size_t i = 0; i < numPortsReq; ++i) { Loading Loading @@ -1617,15 +1620,19 @@ Status AudioPolicyService::listDeclaredDevicePorts(media::AudioPortRole role, Status AudioPolicyService::getAudioPort(int portId, media::AudioPortFw* _aidl_return) { audio_port_v7 port{ .id = portId }; const AttributionSourceState attributionSource = getCallingAttributionSource(); AutoCallerClear acc; { audio_utils::lock_guard _l(mMutex); if (mAudioPolicyManager == NULL) { return binderStatusFromStatusT(NO_INIT); } const AttributionSourceState attributionSource = getCallingAttributionSource(); AutoCallerClear acc; // AudioPolicyManager->getAudioPort makes a deep copy of the port struct into port // so it is safe to access after releasing the mutex RETURN_IF_BINDER_ERROR(binderStatusFromStatusT(mAudioPolicyManager->getAudioPort(&port))); } if (mustAnonymizeBluetoothAddress(attributionSource, String16(__func__))) { anonymizePortBluetoothAddress(&port); Loading Loading @@ -1688,17 +1695,20 @@ Status AudioPolicyService::listAudioPatches(Int* count, std::unique_ptr<audio_patch[]> patches(new audio_patch[num_patches]); unsigned int generation; const AttributionSourceState attributionSource = getCallingAttributionSource(); AutoCallerClear acc; { audio_utils::lock_guard _l(mMutex); if (mAudioPolicyManager == NULL) { return binderStatusFromStatusT(NO_INIT); } const AttributionSourceState attributionSource = getCallingAttributionSource(); AutoCallerClear acc; // AudioPolicyManager->listAudioPatches makes a deep copy of patches structs into patches // so it is safe to access after releasing the mutex RETURN_IF_BINDER_ERROR(binderStatusFromStatusT( mAudioPolicyManager->listAudioPatches(&num_patches, patches.get(), &generation))); numPatchesReq = std::min(numPatchesReq, num_patches); } if (mustAnonymizeBluetoothAddress(attributionSource, String16(__func__))) { for (size_t i = 0; i < numPatchesReq; ++i) { Loading Loading
services/audiopolicy/service/AudioPolicyInterfaceImpl.cpp +34 −24 Original line number Diff line number Diff line Loading @@ -1577,17 +1577,20 @@ Status AudioPolicyService::listAudioPorts(media::AudioPortRole roleAidl, std::unique_ptr<audio_port_v7[]> ports(new audio_port_v7[num_ports]); unsigned int generation; const AttributionSourceState attributionSource = getCallingAttributionSource(); AutoCallerClear acc; { audio_utils::lock_guard _l(mMutex); if (mAudioPolicyManager == NULL) { return binderStatusFromStatusT(NO_INIT); } const AttributionSourceState attributionSource = getCallingAttributionSource(); AutoCallerClear acc; // AudioPolicyManager->listAudioPorts makes a deep copy of port structs into ports // so it is safe to access after releasing the mutex RETURN_IF_BINDER_ERROR(binderStatusFromStatusT( mAudioPolicyManager->listAudioPorts(role, type, &num_ports, ports.get(), &generation))); mAudioPolicyManager->listAudioPorts( role, type, &num_ports, ports.get(), &generation))); numPortsReq = std::min(numPortsReq, num_ports); } if (mustAnonymizeBluetoothAddress(attributionSource, String16(__func__))) { for (size_t i = 0; i < numPortsReq; ++i) { Loading Loading @@ -1617,15 +1620,19 @@ Status AudioPolicyService::listDeclaredDevicePorts(media::AudioPortRole role, Status AudioPolicyService::getAudioPort(int portId, media::AudioPortFw* _aidl_return) { audio_port_v7 port{ .id = portId }; const AttributionSourceState attributionSource = getCallingAttributionSource(); AutoCallerClear acc; { audio_utils::lock_guard _l(mMutex); if (mAudioPolicyManager == NULL) { return binderStatusFromStatusT(NO_INIT); } const AttributionSourceState attributionSource = getCallingAttributionSource(); AutoCallerClear acc; // AudioPolicyManager->getAudioPort makes a deep copy of the port struct into port // so it is safe to access after releasing the mutex RETURN_IF_BINDER_ERROR(binderStatusFromStatusT(mAudioPolicyManager->getAudioPort(&port))); } if (mustAnonymizeBluetoothAddress(attributionSource, String16(__func__))) { anonymizePortBluetoothAddress(&port); Loading Loading @@ -1688,17 +1695,20 @@ Status AudioPolicyService::listAudioPatches(Int* count, std::unique_ptr<audio_patch[]> patches(new audio_patch[num_patches]); unsigned int generation; const AttributionSourceState attributionSource = getCallingAttributionSource(); AutoCallerClear acc; { audio_utils::lock_guard _l(mMutex); if (mAudioPolicyManager == NULL) { return binderStatusFromStatusT(NO_INIT); } const AttributionSourceState attributionSource = getCallingAttributionSource(); AutoCallerClear acc; // AudioPolicyManager->listAudioPatches makes a deep copy of patches structs into patches // so it is safe to access after releasing the mutex RETURN_IF_BINDER_ERROR(binderStatusFromStatusT( mAudioPolicyManager->listAudioPatches(&num_patches, patches.get(), &generation))); numPatchesReq = std::min(numPatchesReq, num_patches); } if (mustAnonymizeBluetoothAddress(attributionSource, String16(__func__))) { for (size_t i = 0; i < numPatchesReq; ++i) { Loading