Both mouse and mouse->button are already used before their checking were being performed. So check on the beginning.
Signed-off-by: Tiago Vignatti <[email protected]> --- dix/events.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) diff --git a/dix/events.c b/dix/events.c index 6541652..f949b07 100644 --- a/dix/events.c +++ b/dix/events.c @@ -4350,7 +4350,7 @@ DeviceEnterLeaveEvent( WindowPtr pWin, Window child) { - GrabPtr grab = mouse->deviceGrab.grab; + GrabPtr grab; xXIEnterEvent *event; int filter; int btlen, len, i; @@ -4360,6 +4360,10 @@ DeviceEnterLeaveEvent( (mode == XINotifyPassiveUngrab && type == XI_Enter)) return; + if (!mouse || !mouse->button) + return; + grab = mouse->deviceGrab.grab; + btlen = (mouse->button) ? bits_to_bytes(mouse->button->numButtons) : 0; btlen = bytes_to_int32(btlen); len = sizeof(xXIEnterEvent) + btlen * 4; @@ -4378,7 +4382,7 @@ DeviceEnterLeaveEvent( event->root_x = FP1616(mouse->spriteInfo->sprite->hot.x, 0); event->root_y = FP1616(mouse->spriteInfo->sprite->hot.y, 0); - for (i = 0; mouse && mouse->button && i < mouse->button->numButtons; i++) + for (i = 0; i < mouse->button->numButtons; i++) if (BitIsOn(mouse->button->down, i)) SetBit(&event[1], i); -- 1.6.0.4 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
