summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordalecurtis@google.com <dalecurtis@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-14 22:44:04 +0000
committerdalecurtis@google.com <dalecurtis@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-14 22:44:04 +0000
commitc3b458269ee3f045da1d16eac22307ebfedc2423 (patch)
treed48a0474b2ae94b678858f181f0a1e96f28e74e5
parent47bd7447eb55350fa4ec44b13df01f22c4fd94b1 (diff)
downloadchromium_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.cc2
-rw-r--r--media/audio/audio_output_device.cc2
-rw-r--r--media/base/audio_bus.cc3
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));