diff options
author | satish@chromium.org <satish@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-02 15:59:44 +0000 |
---|---|---|
committer | satish@chromium.org <satish@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-02 15:59:44 +0000 |
commit | fc99a240af2cf47aa3a6ac1cd4576148e84f0b9a (patch) | |
tree | 787821ed99dd63273751311265d44feb7f9f172e /content | |
parent | 1c752de70bc13ddebce9526b2c52b18bcf392a61 (diff) | |
download | chromium_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.cc | 5 |
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(); |