diff options
| author | Albrecht Schlosser <albrechts.fltk@online.de> | 2024-04-29 16:32:13 +0200 |
|---|---|---|
| committer | Albrecht Schlosser <albrechts.fltk@online.de> | 2024-04-29 16:32:13 +0200 |
| commit | b402b6a8397f9fc13157813d39d505ea9ead00f0 (patch) | |
| tree | c799dd09e50af20c6d4815fe574723c3a792276a /src/Fl_Window.cxx | |
| parent | 8664fde1d97be45c65936f534d631d7ccc09c4c5 (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.
Diffstat (limited to 'src/Fl_Window.cxx')
| -rw-r--r-- | src/Fl_Window.cxx | 5 |
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(); } |
