summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authorsatish@chromium.org <satish@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-02 15:59:44 +0000
committersatish@chromium.org <satish@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-02 15:59:44 +0000
commitfc99a240af2cf47aa3a6ac1cd4576148e84f0b9a (patch)
tree787821ed99dd63273751311265d44feb7f9f172e /content
parent1c752de70bc13ddebce9526b2c52b18bcf392a61 (diff)
downloadchromium_src-fc99a240af2cf47aa3a6ac1cd4576148e84f0b9a.zip
chromium_src-fc99a240af2cf47aa3a6ac1cd4576148e84f0b9a.tar.gz
chromium_src-fc99a240af2cf47aa3a6ac1cd4576148e84f0b9a.tar.bz2
Fix a use-after-free bug in SpeechRecognizer.
BUG=74614 TEST=valgrind bots don't go red because of SpeechRecognizer Review URL: http://codereview.chromium.org/6604005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76545 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r--content/browser/speech/speech_recognizer.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/content/browser/speech/speech_recognizer.cc b/content/browser/speech/speech_recognizer.cc
index b23f4b0..edd3419 100644
--- a/content/browser/speech/speech_recognizer.cc
+++ b/content/browser/speech/speech_recognizer.cc
@@ -218,6 +218,7 @@ void SpeechRecognizer::HandleOnData(string* data) {
encoder_->Encode(samples, num_samples);
float rms;
endpointer_.ProcessAudio(samples, num_samples, &rms);
+ bool did_clip = Clipping(samples, num_samples);
delete data;
num_samples_recorded_ += num_samples;
@@ -255,8 +256,8 @@ void SpeechRecognizer::HandleOnData(string* data) {
noise_level = std::min(std::max(0.0f, noise_level),
kAudioMeterRangeMaxUnclipped);
- delegate_->SetInputVolume(caller_id_,
- Clipping(samples, num_samples) ? 1.0f : audio_level_, noise_level);
+ delegate_->SetInputVolume(caller_id_, did_clip ? 1.0f : audio_level_,
+ noise_level);
if (endpointer_.speech_input_complete()) {
StopRecording();