[PATCH libXt] fix NULL check
walter harms
wharms at bfs.de
Tue Oct 26 05:00:30 PDT 2010
_XtGetPerWidgetInput may return NULL
avoid possible NULL references
Signed-off-by: walter harms <wharms at bfs.de>
---
src/Keyboard.c | 15 +++++++++------
1 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/src/Keyboard.c b/src/Keyboard.c
index 9c8065b..ef27399 100644
--- a/src/Keyboard.c
+++ b/src/Keyboard.c
@@ -727,18 +727,21 @@ static void QueryEventMask(
*/
Widget ancestor = (Widget)client_data;
XtPerWidgetInput pwi = _XtGetPerWidgetInput(ancestor, FALSE);
- Widget target = pwi->queryEventDescendant;
- /* use of 'target' is non-standard hackery; allows focus to non-widget */
- if (pwi && (pwi->focusKid == target)) {
+ if (pwi) {
+ Widget target = pwi->queryEventDescendant;
+
+ /* use of 'target' is non-standard hackery; allows focus to non-widget */
+ if ( pwi->focusKid == target ) {
AddFocusHandler(ancestor, target, pwi,
_XtGetPerWidgetInput(GetShell(ancestor), TRUE),
_XtGetPerDisplayInput(XtDisplay(ancestor)),
(EventMask)0);
+ }
+ XtRemoveEventHandler(widget, XtAllEvents, True,
+ QueryEventMask, client_data);
+ pwi->map_handler_added = FALSE;
}
- XtRemoveEventHandler(widget, XtAllEvents, True,
- QueryEventMask, client_data);
- pwi->map_handler_added = FALSE;
}
--
1.6.0.2
More information about the xorg-devel
mailing list