commit | b248b8b3ea56942ce78b1a47d8c913c2bf943b7b | [log] [tgz] |
---|---|---|
author | Eric Laurent <elaurent@google.com> | Wed Dec 15 10:59:38 2021 +0000 |
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | Wed Dec 15 10:59:38 2021 +0000 |
tree | 4575e0cc2c040f9af36bfdbddbcab5b564592f4c | |
parent | f7ea88b41f581ff089b3ad3da9ad3e3268860717 [diff] | |
parent | cb9c039f042ff7e006595f6d241f595eded4b566 [diff] |
Merge "[BUG] audiopolicy: engineconfigurable: prevent illegal map access" am: e355671896 am: e9ea3ceb7b am: b702717396 am: cb9c039f04 Original change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1409790 Change-Id: I866be5eee6dc07ed713c28cb1613787bab8a282a
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.