From 0b746075d89475a18499618b69efcd2aac412486 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Thu, 22 Oct 2020 18:23:38 +0200 Subject: [PATCH] LibGUI: Tolerate Window::set_icon(nullptr) Don't try to dereference a null icon. Instead just set a 16x16 empty bitmap as the window icon. This looks like the crash mentioned in #3817. --- Libraries/LibGUI/Window.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Libraries/LibGUI/Window.cpp b/Libraries/LibGUI/Window.cpp index 1618e891c31..e71a939d691 100644 --- a/Libraries/LibGUI/Window.cpp +++ b/Libraries/LibGUI/Window.cpp @@ -682,9 +682,11 @@ void Window::set_icon(const Gfx::Bitmap* icon) if (m_icon == icon) return; - m_icon = create_shared_bitmap(Gfx::BitmapFormat::RGBA32, icon->size()); + Gfx::IntSize icon_size = icon ? icon->size() : Gfx::IntSize(16, 16); + + m_icon = create_shared_bitmap(Gfx::BitmapFormat::RGBA32, icon_size); ASSERT(m_icon); - { + if (icon) { Painter painter(*m_icon); painter.blit({ 0, 0 }, *icon, icon->rect()); }