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

Reply via email to