Index: Source/core/html/canvas/WebGLRenderingContextBase.cpp |
diff --git a/Source/core/html/canvas/WebGLRenderingContextBase.cpp b/Source/core/html/canvas/WebGLRenderingContextBase.cpp |
index e20a1c1a958ab0a611d33b372d6f9ac409fbdf1e..2a4b757f33a1e872db341f6f5b1c68b75369f389 100644 |
--- a/Source/core/html/canvas/WebGLRenderingContextBase.cpp |
+++ b/Source/core/html/canvas/WebGLRenderingContextBase.cpp |
@@ -1011,6 +1011,9 @@ |
// This is an approximation because at WebGLRenderingContextBase level we don't |
// know if the underlying FBO uses textures or renderbuffers. |
GLint maxSize = std::min(m_maxTextureSize, m_maxRenderbufferSize); |
+ // Limit drawing buffer size to 4k to avoid memory exhaustion. |
+ const int sizeUpperLimit = 4096; |
+ maxSize = std::min(maxSize, sizeUpperLimit); |
GLint maxWidth = std::min(maxSize, m_maxViewportDims[0]); |
GLint maxHeight = std::min(maxSize, m_maxViewportDims[1]); |
width = clamp(width, 1, maxWidth); |