summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlbrecht Schlosser <albrechts.fltk@online.de>2024-04-29 16:32:13 +0200
committerAlbrecht Schlosser <albrechts.fltk@online.de>2024-04-29 16:32:13 +0200
commitb402b6a8397f9fc13157813d39d505ea9ead00f0 (patch)
treec799dd09e50af20c6d4815fe574723c3a792276a
parent8664fde1d97be45c65936f534d631d7ccc09c4c5 (diff)
Fix potential NULL pointer dereference
... as reported in thread "Windows 11 crash (still investigating)" of fltk.coredev, started on Apr 24, 2024. This bug could only be triggered if a /subwindow/ wss hidden but was not limited to Windows.
-rw-r--r--src/Fl_Window.cxx5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/Fl_Window.cxx b/src/Fl_Window.cxx
index bf2093118..38b3da521 100644
--- a/src/Fl_Window.cxx
+++ b/src/Fl_Window.cxx
@@ -592,8 +592,9 @@ int Fl_Window::handle(int ev)
// unmap because when the parent window is remapped we don't
// want to reappear.
if (visible()) {
- Fl_Widget* p = parent(); for (;p->visible();p = p->parent()) {}
- if (p->type() >= FL_WINDOW) break; // don't do the unmap
+ Fl_Widget* p = parent();
+ for (; p && p->visible(); p = p->parent()) { /* empty*/ }
+ if (p && p->as_window()) break; // don't do the unmap
}
pWindowDriver->unmap();
}