summaryrefslogtreecommitdiffstats
path: root/soundtrigger
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2017-09-07 12:35:29 -0700
committerEric Laurent <elaurent@google.com>2017-09-07 12:48:41 -0700
commita6920307f1e7178bbdaca9830b2485979c863b4c (patch)
treec91076b3367555622e318f86cb598ac40635661d /soundtrigger
parent1a17e86d76621d7946e5f8e0c7c4bc350d4d211f (diff)
downloadandroid_hardware_interfaces-a6920307f1e7178bbdaca9830b2485979c863b4c.tar.gz
android_hardware_interfaces-a6920307f1e7178bbdaca9830b2485979c863b4c.tar.bz2
android_hardware_interfaces-a6920307f1e7178bbdaca9830b2485979c863b4c.zip
sound trigger: fix array overflow in HAL wrapper
Bug: 65383689 Test: make Change-Id: I9d62eb9be096222bcc3e1734a21f6ade0005b180
Diffstat (limited to 'soundtrigger')
-rw-r--r--soundtrigger/2.0/default/SoundTriggerHalImpl.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/soundtrigger/2.0/default/SoundTriggerHalImpl.cpp b/soundtrigger/2.0/default/SoundTriggerHalImpl.cpp
index 996519b2b..f963fb1bc 100644
--- a/soundtrigger/2.0/default/SoundTriggerHalImpl.cpp
+++ b/soundtrigger/2.0/default/SoundTriggerHalImpl.cpp
@@ -388,10 +388,12 @@ void SoundTriggerHalImpl::convertTriggerPhraseToHal(
halTriggerPhrase->id = triggerPhrase->id;
halTriggerPhrase->recognition_mode = triggerPhrase->recognitionModes;
unsigned int i;
- for (i = 0; i < triggerPhrase->users.size(); i++) {
+
+ halTriggerPhrase->num_users =
+ std::min((int)triggerPhrase->users.size(), SOUND_TRIGGER_MAX_USERS);
+ for (i = 0; i < halTriggerPhrase->num_users; i++) {
halTriggerPhrase->users[i] = triggerPhrase->users[i];
}
- halTriggerPhrase->num_users = i;
strlcpy(halTriggerPhrase->locale,
triggerPhrase->locale.c_str(), SOUND_TRIGGER_MAX_LOCALE_LEN);