The problem is that the program allocates a static 128-byte array to hold flags indicating which keys are down...then iterates from 0 to NR_KEYS filling it with blanks. Apparently NR_KEYS used to be less than 128, but now it's 256; obviously this was disaster waiting to happen, and fixing the loop fixes the bug.
I'll upload a 0-day NMU in a moment to close this bug. Daniel
--- rawkey.c.orig 2006-10-16 19:16:37.000000000 -0700 +++ rawkey.c 2006-10-16 19:16:38.000000000 -0700 @@ -23,7 +23,7 @@ static struct termios new_termio,old_termio; static int vtswitch_allowed=0; -static int key_down[128]; +static int key_down[NR_KEYS]; /* user-supplied functions to 'undraw' and 'redraw' screen * if vt switching is allowed.
signature.asc
Description: Digital signature