Index: third_party/WebKit/Source/modules/mediastream/RTCDataChannel.cpp |
diff --git a/third_party/WebKit/Source/modules/mediastream/RTCDataChannel.cpp b/third_party/WebKit/Source/modules/mediastream/RTCDataChannel.cpp |
index 1e756bb8170965b3f9922f955760aded94e3e1cb..5592d8f367787afe2dded0e88f965ef2a154397d 100644 |
--- a/third_party/WebKit/Source/modules/mediastream/RTCDataChannel.cpp |
+++ b/third_party/WebKit/Source/modules/mediastream/RTCDataChannel.cpp |
@@ -287,8 +287,10 @@ void RTCDataChannel::didReceiveRawData(const char* data, size_t dataLength) |
return; |
} |
if (m_binaryType == BinaryTypeArrayBuffer) { |
- RefPtr<DOMArrayBuffer> buffer = DOMArrayBuffer::create(data, dataLength); |
- scheduleDispatchEvent(MessageEvent::create(buffer.release())); |
+ RefPtr<DOMArrayBuffer> buffer = DOMArrayBuffer::createOrNull(data, dataLength); |
+ // Being out of memory results in silent failure: message dropped. |
+ if (buffer) |
+ scheduleDispatchEvent(MessageEvent::create(buffer.release())); |
return; |
} |
ASSERT_NOT_REACHED(); |