Bug 1573048 - Add size check to WebGLContext::BufferData() r=jgilbert

Differential Revision: https://phabricator.services.mozilla.com/D44619

--HG--
extra : moz-landing-system : lando
This commit is contained in:
sotaro 2019-09-26 04:18:30 +00:00
Родитель 024ebc22db
Коммит e1192adbf5
1 изменённых файлов: 7 добавлений и 0 удалений

Просмотреть файл

@ -266,6 +266,13 @@ void WebGLContext::BufferData(GLenum target, WebGLsizeiptr size, GLenum usage) {
if (!checkedSize.isValid())
return ErrorOutOfMemory("size too large for platform.");
#if defined(XP_MACOSX)
// bug 1573048
if (gl->WorkAroundDriverBugs() && size > 1200000000) {
return ErrorOutOfMemory("Allocations larger than 1200000000 fail on macOS.");
}
#endif
const UniqueBuffer zeroBuffer(calloc(checkedSize.value(), 1u));
if (!zeroBuffer) return ErrorOutOfMemory("Failed to allocate zeros.");