summaryrefslogtreecommitdiff
path: root/audio/common/all-versions/default/7.0/HidlUtils.cpp
diff options
context:
space:
mode:
authorjiabin <jiabin@google.com>2022-07-07 18:13:45 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-08-12 23:24:33 +0000
commitfbfadba9f0255a972b960e46e44c68c2b11afda3 (patch)
treed8cdee116d5bb155c7253104ccfea8e2f716ffd9 /audio/common/all-versions/default/7.0/HidlUtils.cpp
parent8f95726d645273bb59d87e3f0e77de23cf909346 (diff)
Fix array out of bound in audioTransportToHal.
The number of audio profile and extra audio descriptor must not be greater than the maximum value. Bug: 237288416 Bug: 237717857 Test: repo step in bug Test: atest android.hardware.audio.common@7.0-util_tests Change-Id: I1fcfa29d7841a1cb73bafb1ea92f3b1630992ae9 Merged-In: I1fcfa29d7841a1cb73bafb1ea92f3b1630992ae9 (cherry picked from commit 0ee75ca925f6334741d3e34c5e1d1b0efae5943b) (cherry picked from commit f16c6d3a5741768356159f099d04bfe2219c81fe) Merged-In: I1fcfa29d7841a1cb73bafb1ea92f3b1630992ae9
Diffstat (limited to 'audio/common/all-versions/default/7.0/HidlUtils.cpp')
-rw-r--r--audio/common/all-versions/default/7.0/HidlUtils.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/audio/common/all-versions/default/7.0/HidlUtils.cpp b/audio/common/all-versions/default/7.0/HidlUtils.cpp
index 5a5b5d276a..af29da61f3 100644
--- a/audio/common/all-versions/default/7.0/HidlUtils.cpp
+++ b/audio/common/all-versions/default/7.0/HidlUtils.cpp
@@ -894,7 +894,7 @@ status_t HidlUtils::audioTransportsToHal(const hidl_vec<AudioTransport>& transpo
for (const auto& transport : transports) {
switch (transport.audioCapability.getDiscriminator()) {
case AudioTransport::AudioCapability::hidl_discriminator::profile:
- if (halPort->num_audio_profiles > AUDIO_PORT_MAX_AUDIO_PROFILES) {
+ if (halPort->num_audio_profiles >= AUDIO_PORT_MAX_AUDIO_PROFILES) {
ALOGE("%s, too many audio profiles", __func__);
result = BAD_VALUE;
break;
@@ -910,7 +910,8 @@ status_t HidlUtils::audioTransportsToHal(const hidl_vec<AudioTransport>& transpo
result);
break;
case AudioTransport::AudioCapability::hidl_discriminator::edid:
- if (halPort->num_extra_audio_descriptors > AUDIO_PORT_MAX_EXTRA_AUDIO_DESCRIPTORS) {
+ if (halPort->num_extra_audio_descriptors >=
+ AUDIO_PORT_MAX_EXTRA_AUDIO_DESCRIPTORS) {
ALOGE("%s, too many extra audio descriptors", __func__);
result = BAD_VALUE;
break;