mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 965945 - Prevent the parent process from running out of memory if the child process requests a giant gralloc buffer. r=bjacob
This commit is contained in:
parent
83cd1d1b5f
commit
4abb4c4bbb
@ -291,6 +291,16 @@ GrallocBufferActor::Create(const gfx::IntSize& aSize,
|
||||
return actor;
|
||||
}
|
||||
|
||||
// If the requested size is too big (i.e. exceeds the commonly used max GL texture size)
|
||||
// then we risk OOMing the parent process. It's better to just deny the allocation and
|
||||
// kill the child process, which is what the following code does.
|
||||
// TODO: actually use GL_MAX_TEXTURE_SIZE instead of hardcoding 4096
|
||||
if (aSize.width > 4096 || aSize.height > 4096) {
|
||||
printf_stderr("GrallocBufferActor::Create -- requested gralloc buffer is too big. Killing child instead.");
|
||||
delete actor;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
sp<GraphicBuffer> buffer(new GraphicBuffer(aSize.width, aSize.height, format, usage));
|
||||
if (buffer->initCheck() != OK)
|
||||
return actor;
|
||||
|
Loading…
Reference in New Issue
Block a user