From 070195dbf88eb121e65f802e023aa37ed1f2c2ac Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Thu, 15 Nov 2007 16:27:18 +1030 Subject: [PATCH] Xi: fix up sloppy class copying causing segfaults. --- Xi/exevents.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Xi/exevents.c b/Xi/exevents.c index 539501116..837afa383 100644 --- a/Xi/exevents.c +++ b/Xi/exevents.c @@ -220,6 +220,7 @@ DeepCopyDeviceClasses(DeviceIntPtr from, DeviceIntPtr to) #ifdef XKB to->key->xkbInfo = NULL; #endif + to->key->curKeySyms.map = NULL; CopyKeyClass(from, to); } @@ -233,8 +234,12 @@ DeepCopyDeviceClasses(DeviceIntPtr from, DeviceIntPtr to) if (!v) FatalError("[Xi] no memory for class shift.\n"); memcpy(v, from->valuator, sizeof(ValuatorClassRec)); + v->motion = NULL; + v->axes = (AxisInfoPtr)&v[1]; memcpy(v->axes, from->valuator->axes, v->numAxes * sizeof(AxisInfo)); + + v->axisVal = (int*)(v->axes + from->valuator->numAxes); } ALLOC_COPY_CLASS_IF(button, ButtonClassRec);