diff options
author | cevans@chromium.org <cevans@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-30 15:13:09 +0000 |
---|---|---|
committer | cevans@chromium.org <cevans@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-30 15:13:09 +0000 |
commit | f4b624d17659eddae7dbef2b2e5ffeda34ee1b7e (patch) | |
tree | 7f2bb0f0f8fc4c0472c35001c6e27eeca45029a7 /chrome/browser | |
parent | 9b75b5b69a63c9a7167badc5ca33e9910d4e390a (diff) | |
download | chromium_src-f4b624d17659eddae7dbef2b2e5ffeda34ee1b7e.zip chromium_src-f4b624d17659eddae7dbef2b2e5ffeda34ee1b7e.tar.gz chromium_src-f4b624d17659eddae7dbef2b2e5ffeda34ee1b7e.tar.bz2 |
Add some limits to incoming audio stream requests to avoid allocating massive
buffers.
BUG=NONE
TEST=NONE
Review URL: http://codereview.chromium.org/147236
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19586 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r-- | chrome/browser/renderer_host/audio_renderer_host.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/chrome/browser/renderer_host/audio_renderer_host.cc b/chrome/browser/renderer_host/audio_renderer_host.cc index 1d2bf07..dbe2e7d 100644 --- a/chrome/browser/renderer_host/audio_renderer_host.cc +++ b/chrome/browser/renderer_host/audio_renderer_host.cc @@ -42,6 +42,9 @@ const size_t kMegabytes = 1024 * 1024; // renderer to avoid renderer from requesting too much memory. const size_t kMaxDecodedPacketSize = 2 * kMegabytes; const size_t kMaxBufferCapacity = 5 * kMegabytes; +static const int kMaxChannels = 32; +static const int kMaxBitsPerSample = 64; +static const int kMaxSampleRate = 192000; } // namespace @@ -97,6 +100,15 @@ AudioRendererHost::IPCAudioSource* if (buffer_capacity < decoded_packet_size) return NULL; + if (channels <= 0 || channels > kMaxChannels) + return NULL; + + if (sample_rate <= 0 || sample_rate > kMaxSampleRate) + return NULL; + + if (bits_per_sample <= 0 || bits_per_sample > kMaxBitsPerSample) + return NULL; + // Create the stream in the first place. AudioOutputStream* stream = AudioManager::GetAudioManager()->MakeAudioStream( |