WindowServer: Don't crash when we can't allocate a bitmap

When the client specifies an absurdly large window size
render_to_cache() fails to allocate a bitmap and crashes.

Refs .
This commit is contained in:
Gunnar Beutner 2021-06-02 10:36:44 +02:00 committed by Linus Groh
parent 2df6c70b07
commit cdb070cdfb
Notes: sideshowbarker 2024-07-18 17:01:41 +09:00

View file

@ -409,8 +409,14 @@ void WindowFrame::render_to_cache()
if (s_tmp_bitmap)
s_tmp_bitmap->unref();
s_tmp_bitmap = Gfx::Bitmap::create(Gfx::BitmapFormat::BGRA8888, total_frame_rect.size(), scale).leak_ref();
if (!s_tmp_bitmap) {
dbgln("Could not create bitmap of size {}", total_frame_rect.size());
return;
}
}
VERIFY(s_tmp_bitmap);
auto top_bottom_height = total_frame_rect.height() - window_rect.height();
auto left_right_width = total_frame_rect.width() - window_rect.width();