From 0b29e3bf6d3736fa2dac4dfd792db622d490f004 Mon Sep 17 00:00:00 2001 From: Nigel Stewart Date: Wed, 17 Mar 2004 04:02:21 +0000 Subject: [PATCH] Prevent exceeding array bounds in X11 key-repeat detection git-svn-id: svn+ssh://svn.code.sf.net/p/freeglut/code/trunk/freeglut/freeglut@489 7f0cb862-5218-0410-a997-914c9d46530a --- src/freeglut_main.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/freeglut_main.c b/src/freeglut_main.c index 06da108..25c8e38 100644 --- a/src/freeglut_main.c +++ b/src/freeglut_main.c @@ -968,10 +968,13 @@ void FGAPIENTRY glutMainLoopEvent( void ) char keys[32]; XQueryKeymap( fgDisplay.Display, keys ); /* Look at X11 keystate to detect repeat mode */ - if ( keys[event.xkey.keycode>>3] & (1<<(event.xkey.keycode%8)) ) - window->State.KeyRepeating = GL_TRUE; - else - window->State.KeyRepeating = GL_FALSE; + if ( event.xkey.keycode<256 ) /* XQueryKeymap is limited to 256 keycodes */ + { + if ( keys[event.xkey.keycode>>3] & (1<<(event.xkey.keycode%8)) ) + window->State.KeyRepeating = GL_TRUE; + else + window->State.KeyRepeating = GL_FALSE; + } } } else -- 1.7.10.4