| Index: content/browser/renderer_host/media/audio_input_renderer_host.cc
|
| diff --git a/content/browser/renderer_host/media/audio_input_renderer_host.cc b/content/browser/renderer_host/media/audio_input_renderer_host.cc
|
| index 67067c7833265caf8574825af805e961781ea880..ca5d0683d209a56a187430639fc1a85b811f2fd4 100644
|
| --- a/content/browser/renderer_host/media/audio_input_renderer_host.cc
|
| +++ b/content/browser/renderer_host/media/audio_input_renderer_host.cc
|
| @@ -7,6 +7,7 @@
|
| #include "base/bind.h"
|
| #include "base/memory/shared_memory.h"
|
| #include "base/metrics/histogram.h"
|
| +#include "base/numerics/safe_math.h"
|
| #include "base/process/process.h"
|
| #include "base/strings/stringprintf.h"
|
| #include "content/browser/media/capture/web_contents_audio_input_stream.h"
|
| @@ -259,8 +260,10 @@ void AudioInputRendererHost::OnCreateStream(
|
|
|
| // Create the shared memory and share it with the renderer process
|
| // using a new SyncWriter object.
|
| - if (!entry->shared_memory.CreateAndMapAnonymous(
|
| - segment_size * entry->shared_memory_segment_count)) {
|
| + base::CheckedNumeric<uint32> size = segment_size;
|
| + size *= entry->shared_memory_segment_count;
|
| + if (!size.IsValid() ||
|
| + !entry->shared_memory.CreateAndMapAnonymous(size.ValueOrDie())) {
|
| // If creation of shared memory failed then send an error message.
|
| SendErrorMessage(stream_id, SHARED_MEMORY_CREATE_FAILED);
|
| return;
|
|
|