[Pkg-kbd-devel] Bug#500116: Bug#500116: loadkeys segfaults when dealing with certain Unicode characters
Colin Watson
cjwatson at ubuntu.com
Wed Oct 22 19:55:03 UTC 2008
On Wed, Oct 22, 2008 at 09:11:08PM +0200, Michael Schutte wrote:
> First of all, I’ve been pretty busy lately, so please excuse me for
> taking so long to reply.
No problem - happens to me all the time.
> On Thu, Sep 25, 2008 at 10:06:30AM +0100, Colin Watson wrote:
> > I've attached a patch which fixes the segfault by adding
> > bounds-checking. I think this is a clear improvement over what's there
> > now. However, it still isn't quite perfect, as there are still clashes
> > between valid Unicode characters and special keysyms. For instance,
> > U+FC00 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM
> > (never mind that you probably have only about a snowball's chance in
> > hell of that working on the Linux console ...) comes out as KTYP(code)
> > == 12 == KT_SLOCK and KVAL(code) == 0, so will be interpreted as SShift.
>
> Thanks for the patch; I’ve imported it into the Git repo for now.
> Still, I’d rather have a deeper look and really fix the problem at its
> root.
>
> > If all of the fake codes were within Unicode's private use range
> > E000-F8FF, then I think this would work much better. It seems that this
> > would just involve XORing with 0xE000 rather than 0xF000. However, I
> > know that the Linux consolemap code interprets 0xF000-0xF0FF as
> > "transparent Unicode" that gets mapped directly to font positions, and
> > I'm not sure whether kbd relies on this, so I didn't want to just
> > crudely substitute 0xE000 for 0xF000 across the board. I'd appreciate
> > your advice here.
>
> This might just work, but I’m not sure I like the idea. I hope, no—I’m
> sure there are more elegant solutions :-)
Oh, certainly; I knew my patch and ideas were both imperfect. Actually,
thinking about it, you ought to have 16 more bits to play with, and IIRC
XKB uses 0x01000000. That's a bit of a hack too but perhaps a rather
safer one!
Cheers,
--
Colin Watson [cjwatson at ubuntu.com]
More information about the Pkg-kbd-devel
mailing list