commit | cb9c039f042ff7e006595f6d241f595eded4b566 | [log] [tgz] |
---|---|---|
author | Eric Laurent <elaurent@google.com> | Wed Dec 15 09:07:41 2021 +0000 |
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | Wed Dec 15 09:07:41 2021 +0000 |
tree | 163b3854b795e85210bb8c3a2c541d6910b510c1 | |
parent | 584bd689114f98a49efef04ef6a634123fecc55c [diff] | |
parent | b702717396e500a0b4a97a0554bc9c36ae8dc8bb [diff] |
Merge "[BUG] audiopolicy: engineconfigurable: prevent illegal map access" am: e355671896 am: e9ea3ceb7b am: b702717396 Original change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1409790 Change-Id: Ia4ad8b3ed7dff36ee7cf90c5995c09b45ba4a056
diff --git a/services/audiopolicy/engineconfigurable/src/Engine.cpp b/services/audiopolicy/engineconfigurable/src/Engine.cpp index b0c376a..9a61a05 100644 --- a/services/audiopolicy/engineconfigurable/src/Engine.cpp +++ b/services/audiopolicy/engineconfigurable/src/Engine.cpp
@@ -299,8 +299,13 @@ if (device != nullptr) { return DeviceVector(device); } + return fromCache? getCachedDevices(strategy) : getDevicesForProductStrategy(strategy); +} - return fromCache? mDevicesForStrategies.at(strategy) : getDevicesForProductStrategy(strategy); +DeviceVector Engine::getCachedDevices(product_strategy_t ps) const +{ + return mDevicesForStrategies.find(ps) != mDevicesForStrategies.end() ? + mDevicesForStrategies.at(ps) : DeviceVector{}; } DeviceVector Engine::getOutputDevicesForStream(audio_stream_type_t stream, bool fromCache) const
diff --git a/services/audiopolicy/engineconfigurable/src/Engine.h b/services/audiopolicy/engineconfigurable/src/Engine.h index d8e2742..f665da5 100644 --- a/services/audiopolicy/engineconfigurable/src/Engine.h +++ b/services/audiopolicy/engineconfigurable/src/Engine.h
@@ -126,6 +126,7 @@ status_t loadAudioPolicyEngineConfig(); DeviceVector getDevicesForProductStrategy(product_strategy_t strategy) const; + DeviceVector getCachedDevices(product_strategy_t ps) const; /** * Policy Parameter Manager hidden through a wrapper.