diff options
author | dalecurtis@google.com <dalecurtis@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-14 22:44:04 +0000 |
---|---|---|
committer | dalecurtis@google.com <dalecurtis@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-14 22:44:04 +0000 |
commit | c3b458269ee3f045da1d16eac22307ebfedc2423 (patch) | |
tree | d48a0474b2ae94b678858f181f0a1e96f28e74e5 | |
parent | 47bd7447eb55350fa4ec44b13df01f22c4fd94b1 (diff) | |
download | chromium_src-c3b458269ee3f045da1d16eac22307ebfedc2423.zip chromium_src-c3b458269ee3f045da1d16eac22307ebfedc2423.tar.gz chromium_src-c3b458269ee3f045da1d16eac22307ebfedc2423.tar.bz2 |
Merge 186074 "Add some NULL checks for shared memory and AudioBu..."
> Add some NULL checks for shared memory and AudioBus creation.
>
> Seemingly we're getting a NULL ptr inside of the AudioBus used by
> the AudioOutputDevice. It looks like SharedMemory::Map() fails,
> so I've added some CHECK()s to validate this case.
>
> BUG=179986
> TEST=media_unittests
>
>
> Review URL: https://chromiumcodereview.appspot.com/12379089
TBR=dalecurtis@chromium.org
Review URL: https://codereview.chromium.org/12636006
git-svn-id: svn://svn.chromium.org/chrome/branches/1410/src@188222 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | media/audio/audio_device_thread.cc | 2 | ||||
-rw-r--r-- | media/audio/audio_output_device.cc | 2 | ||||
-rw-r--r-- | media/base/audio_bus.cc | 3 |
3 files changed, 5 insertions, 2 deletions
diff --git a/media/audio/audio_device_thread.cc b/media/audio/audio_device_thread.cc index c592acc..b037d8f 100644 --- a/media/audio/audio_device_thread.cc +++ b/media/audio/audio_device_thread.cc @@ -193,7 +193,7 @@ AudioDeviceThread::Callback::~Callback() {} void AudioDeviceThread::Callback::InitializeOnAudioThread() { MapSharedMemory(); - DCHECK(shared_memory_.memory() != NULL); + CHECK(shared_memory_.memory()); } } // namespace media. diff --git a/media/audio/audio_output_device.cc b/media/audio/audio_output_device.cc index e95d21b..079d81b 100644 --- a/media/audio/audio_output_device.cc +++ b/media/audio/audio_output_device.cc @@ -265,7 +265,7 @@ AudioOutputDevice::AudioThreadCallback::~AudioThreadCallback() { } void AudioOutputDevice::AudioThreadCallback::MapSharedMemory() { - shared_memory_.Map(TotalSharedMemorySizeInBytes(memory_length_)); + CHECK(shared_memory_.Map(TotalSharedMemorySizeInBytes(memory_length_))); // Calculate output and input memory size. int output_memory_size = AudioBus::CalculateMemorySize(audio_parameters_); diff --git a/media/base/audio_bus.cc b/media/base/audio_bus.cc index 8143294..0dc3300 100644 --- a/media/base/audio_bus.cc +++ b/media/base/audio_bus.cc @@ -121,6 +121,8 @@ AudioBus::AudioBus(int channels, int frames) AudioBus::AudioBus(int channels, int frames, float* data) : frames_(frames), can_set_channel_data_(false) { + // Since |data| may have come from an external source, ensure it's valid. + CHECK(data); ValidateConfig(channels, frames_); int aligned_frames = 0; @@ -187,6 +189,7 @@ scoped_ptr<AudioBus> AudioBus::WrapMemory(const AudioParameters& params, void AudioBus::SetChannelData(int channel, float* data) { CHECK(can_set_channel_data_); + CHECK(data); CHECK_GE(channel, 0); CHECK_LT(static_cast<size_t>(channel), channel_data_.size()); DCHECK(IsAligned(data)); |