From fce1e80ee33ca39232408b7fb7a43f6b4e4387b3 Mon Sep 17 00:00:00 2001 From: Albrecht Schlosser Date: Sat, 21 May 2011 10:05:19 +0000 Subject: Fix potential crash in fl_xid() on Linux (STR #2635). This would crash if called when a window is not shown(). git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8706 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- CHANGES | 1 + FL/x.H | 2 +- src/Fl_x.cxx | 7 +++---- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CHANGES b/CHANGES index 0d0822c68..35b81b382 100644 --- a/CHANGES +++ b/CHANGES @@ -146,6 +146,7 @@ CHANGES IN FLTK 1.3.0 Bug Fixes + - Fixed potential crash in fl_xid() on Linux (STR #2635) - Fixed keyboard navigation in fl_choice() (STR #2591) - Fixed alpha blending under X11 when line data size != 0 (STR #2606) - Fixed Fl_Tabs selection border drawing, if tabs are at the bottom diff --git a/FL/x.H b/FL/x.H index b9be0343b..1a7a4625c 100644 --- a/FL/x.H +++ b/FL/x.H @@ -174,7 +174,7 @@ public: extern FL_EXPORT char fl_override_redirect; // hack into Fl_X::make_xid() extern FL_EXPORT int fl_background_pixel; // hack into Fl_X::make_xid() -inline Window fl_xid(const Fl_Window* w) { return Fl_X::i(w)->xid; } +inline Window fl_xid(const Fl_Window* w) { Fl_X *temp = Fl_X::i(w); return temp ? temp->xid : 0; } #else diff --git a/src/Fl_x.cxx b/src/Fl_x.cxx index 913c7200d..95aff3d3e 100644 --- a/src/Fl_x.cxx +++ b/src/Fl_x.cxx @@ -1902,12 +1902,11 @@ void Fl_Window::make_current() { #endif } -Window fl_xid_(const Fl_Window* w) -{ - return Fl_X::i(w)->xid; +Window fl_xid_(const Fl_Window *w) { + Fl_X *temp = Fl_X::i(w); + return temp ? temp->xid : 0; } - int Fl_Window::decorated_h() { if (parent() || !shown()) return h(); -- cgit v1.2.3