From b377994336c978875dd786f4a4a9ef2e7b20e32c Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Mon, 25 May 2009 13:55:17 +1000 Subject: [PATCH] Xi: advance by the right number of bytes when trawling XI2 event masks. The wire layout is [struct xXIEventMask][mask bytes]. So the pointer needs to not only be advanced by the mask bytes, but also by the size of the struct. Signed-off-by: Peter Hutterer --- Xi/xiselectev.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Xi/xiselectev.c b/Xi/xiselectev.c index 73097736e..561618244 100644 --- a/Xi/xiselectev.c +++ b/Xi/xiselectev.c @@ -103,6 +103,7 @@ ProcXISelectEvent(ClientPtr client) } evmask = (xXIEventMask*)(((unsigned char*)evmask) + evmask->mask_len * 4); + evmask++; } /* Set masks on window */ @@ -119,6 +120,7 @@ ProcXISelectEvent(ClientPtr client) dixLookupDevice(&dev, evmask->deviceid, client, DixReadAccess); XISetEventMask(dev, win, client, evmask->mask_len * 4, (unsigned char*)&evmask[1]); evmask = (xXIEventMask*)(((unsigned char*)evmask) + evmask->mask_len * 4); + evmask++; } RecalculateDeliverableEvents(win);