Through some code paths it is possible that NULL is being passed in the 'ed' parameter to XkbFlushLedEvents(). Make sure we don't pass it along to bzero().
Signed-off-by: Tomas Carnecky <[email protected]> --- xkb/xkbLEDs.c | 14 ++++++++------ 1 files changed, 8 insertions(+), 6 deletions(-) diff --git a/xkb/xkbLEDs.c b/xkb/xkbLEDs.c index 59cdba4..a9d5cfb 100644 --- a/xkb/xkbLEDs.c +++ b/xkb/xkbLEDs.c @@ -745,12 +745,14 @@ XkbFlushLedEvents( DeviceIntPtr dev, XkbDDXAccessXBeep(dev, _BEEP_LED_OFF, XkbAccessXFeedbackMask); } } - if (ed && (ed->reason)) { - if ((dev!=kbd)&&(ed->reason&XkbXI_IndicatorStateMask)) - XkbDDXUpdateDeviceIndicators(dev,sli,sli->effectiveState); - XkbSendExtensionDeviceNotify(dev,cause->client,ed); - } - bzero((char *)ed,sizeof(XkbExtensionDeviceNotify)); + if (ed) { + if (ed->reason) { + if ((dev!=kbd)&&(ed->reason&XkbXI_IndicatorStateMask)) + XkbDDXUpdateDeviceIndicators(dev,sli,sli->effectiveState); + XkbSendExtensionDeviceNotify(dev,cause->client,ed); + } + bzero((char *)ed,sizeof(XkbExtensionDeviceNotify)); + } return; } -- 1.6.5.5 _______________________________________________ xorg-devel mailing list [email protected] http://lists.x.org/mailman/listinfo/xorg-devel
