diff options
author | Mike Gorse <mgorse@suse.com> | 2023-01-25 02:02:48 +0000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2023-01-25 13:16:49 +1000 |
commit | 8e3926281fb4e42655a4e32dac814a3de193cef7 (patch) | |
tree | 3dae123671fdfcb91786ccc9c9f0411e291931b2 | |
parent | 905bc7f70b6a514e32a8e51181f84cd797f65391 (diff) |
dix: Use CopyPartialInternalEvent in EnqueueEvent
The event might be a DeviceEvent allocated on the stack, in
AccessXKeyboardEvent for instance. Fixes out-of-bounds read.
Signed-off-by: Mike Gorse <mgorse@suse.com>
(cherry picked from commit 2ef5ef57bd37a8bec2ac454053b283c6f87c3b40)
-rw-r--r-- | dix/events.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/dix/events.c b/dix/events.c index 28d7d177c..9a4bff314 100644 --- a/dix/events.c +++ b/dix/events.c @@ -1215,7 +1215,7 @@ EnqueueEvent(InternalEvent *ev, DeviceIntPtr device) qe->pScreen = pSprite->hotPhys.pScreen; qe->months = currentTime.months; qe->event = (InternalEvent *) (qe + 1); - memcpy(qe->event, event, eventlen); + CopyPartialInternalEvent(qe->event, (InternalEvent *)event); xorg_list_append(&qe->next, &syncEvents.pending); } |