The memmove() at the end of SetKeySymsMap in xserver/dix/devices.c, line 677, writes beyond the end of dst->map. Probably the calculation of the size which is currently "(int)(src->maxKeyCode - src->minKeyCode + 1) * dst->mapWidth * sizeof(KeySym)" has to take rowDif into account too.
Sorry about the phenomenal bug spam, guys. Adding xorg-team@ to the QA contact so bugs don't get lost in future.
(In reply to comment #0) > The memmove() at the end of SetKeySymsMap in xserver/dix/devices.c, line 677, > writes beyond the end of dst->map. > Probably the calculation of the size which is currently "(int)(src->maxKeyCode > - src->minKeyCode + 1) * dst->mapWidth * sizeof(KeySym)" has to take rowDif > into account too. > hmm. I looked at this code for quite a while now and it seems correct. Who is the caller when it overruns?
no reply and I can't reproduce it. Marking as WONTFIX with NEEDINFO.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.