If the keycode range exceeds the allowable length, memory gets overwritten.
Catch this case by making sure that only allowed class types are
present.

X.Org Bug 25492 <http://bugs.freedesktop.org/show_bug.cgi?id=25492>

Signed-off-by: Peter Hutterer <[email protected]>
---
This is the reason why the test didn't fail on x86.

 test/xi2/protocol-eventconvert.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/test/xi2/protocol-eventconvert.c b/test/xi2/protocol-eventconvert.c
index 66686cb..f20a10a 100644
--- a/test/xi2/protocol-eventconvert.c
+++ b/test/xi2/protocol-eventconvert.c
@@ -736,6 +736,9 @@ static void 
test_values_XIDeviceChangedEvent(DeviceChangedEvent *in,
 
                 }
                 break;
+            default:
+                g_error("Invalid class type.\n");
+                break;
         }
 
         ptr += any->length * 4;
-- 
1.6.5.2

_______________________________________________
xorg-devel mailing list
[email protected]
http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to