diff options
author | jiabin <jiabin@google.com> | 2022-07-07 18:13:45 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-08-12 23:24:33 +0000 |
commit | fbfadba9f0255a972b960e46e44c68c2b11afda3 (patch) | |
tree | d8cdee116d5bb155c7253104ccfea8e2f716ffd9 /audio/common/all-versions/default/7.0/HidlUtils.cpp | |
parent | 8f95726d645273bb59d87e3f0e77de23cf909346 (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.cpp | 5 |
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; |