Index: third_party/WebKit/Source/modules/encryptedmedia/MediaKeys.cpp |
diff --git a/third_party/WebKit/Source/modules/encryptedmedia/MediaKeys.cpp b/third_party/WebKit/Source/modules/encryptedmedia/MediaKeys.cpp |
index ff536e8f8519f75d5f28303292f26148cf32ebf9..54ee50729d870bdb67b9697aa16a2c530a8a6e33 100644 |
--- a/third_party/WebKit/Source/modules/encryptedmedia/MediaKeys.cpp |
+++ b/third_party/WebKit/Source/modules/encryptedmedia/MediaKeys.cpp |
@@ -151,7 +151,11 @@ ScriptPromise MediaKeys::setServerCertificate(ScriptState* scriptState, const DO |
// 3. Let certificate be a copy of the contents of the serverCertificate |
// parameter. |
- RefPtr<DOMArrayBuffer> serverCertificateBuffer = DOMArrayBuffer::create(serverCertificate.data(), serverCertificate.byteLength()); |
+ RefPtr<DOMArrayBuffer> serverCertificateBuffer = DOMArrayBuffer::createOrNull(serverCertificate.data(), serverCertificate.byteLength()); |
+ if (!serverCertificateBuffer) { |
+ return ScriptPromise::rejectWithDOMException( |
+ scriptState, DOMException::create(V8RangeError, "Out of Memory. Server certificate buffer allocation failed.")); |
+ } |
// 4. Let promise be a new promise. |
SimpleContentDecryptionModuleResultPromise* result = new SimpleContentDecryptionModuleResultPromise(scriptState); |