Prevent exceeding array bounds in X11 key-repeat detection

git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@489 7f0cb862-5218-0410-a997-914c9d46530a
This commit is contained in:
nigels 2004-03-17 04:02:21 +00:00
parent 041d8017dc
commit 101fd08582

View File

@ -968,10 +968,13 @@ void FGAPIENTRY glutMainLoopEvent( void )
char keys[32]; char keys[32];
XQueryKeymap( fgDisplay.Display, keys ); /* Look at X11 keystate to detect repeat mode */ XQueryKeymap( fgDisplay.Display, keys ); /* Look at X11 keystate to detect repeat mode */
if ( keys[event.xkey.keycode>>3] & (1<<(event.xkey.keycode%8)) ) if ( event.xkey.keycode<256 ) /* XQueryKeymap is limited to 256 keycodes */
window->State.KeyRepeating = GL_TRUE; {
else if ( keys[event.xkey.keycode>>3] & (1<<(event.xkey.keycode%8)) )
window->State.KeyRepeating = GL_FALSE; window->State.KeyRepeating = GL_TRUE;
else
window->State.KeyRepeating = GL_FALSE;
}
} }
} }
else else