The length field needs to include the bytes required for the valuators (INT32) as well.
The reply length has the right value and since the valuator state is always last, clients didn't notice the wrong offset. Tested-by: Thomas Jaeger Signed-off-by: Peter Hutterer <[email protected]> --- Xi/queryst.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/Xi/queryst.c b/Xi/queryst.c index 60ec32e..2ba1edb 100644 --- a/Xi/queryst.c +++ b/Xi/queryst.c @@ -147,7 +147,7 @@ ProcXQueryDeviceState(ClientPtr client) if (v != NULL) { tv = (xValuatorState *) buf; tv->class = ValuatorClass; - tv->length = sizeof(xValuatorState); + tv->length = sizeof(xValuatorState) + v->numAxes * 4; tv->num_valuators = v->numAxes; tv->mode = v->mode; buf += sizeof(xValuatorState); -- 1.6.3.rc1.2.g0164.dirty _______________________________________________ xorg-devel mailing list [email protected] http://lists.x.org/mailman/listinfo/xorg-devel
