untrusted comment: verify with openbsd-66-base.pub
RWSvK/c+cFe24L8PyzHyOPGzodcQ7LWEvAVuD7Yfix8B1G1BGfnyf1R/rwmyxAqAF3AZBIIwmI/Ig+rKqJJyis2EHW/Pm3F0dAY=
OpenBSD 6.6 errata 039, August 07, 2020:
The recent security errata 037 broke X11 input methods.
Apply by doing:
signify -Vep /etc/signify/openbsd-66-base.pub -x 039_ximcp.patch.sig \
-m - | (cd /usr/xenocara && patch -p0)
And then compile and rebuild the X11 library
cd /usr/xenocara/lib/libX11
make -f Makefile.bsd-wrapper obj
make -f Makefile.bsd-wrapper build
Index: lib/libX11/modules/im/ximcp/imRmAttr.c
===================================================================
RCS file: /cvs/xenocara/lib/libX11/modules/im/ximcp/imRmAttr.c,v
retrieving revision 1.9.18.1
diff -u -p -r1.9.18.1 imRmAttr.c
--- lib/libX11/modules/im/ximcp/imRmAttr.c 31 Jul 2020 18:43:52 -0000 1.9.18.1
+++ lib/libX11/modules/im/ximcp/imRmAttr.c 4 Aug 2020 19:40:17 -0000
@@ -265,7 +265,7 @@ _XimAttributeToValue(
if (num > (USHRT_MAX / sizeof(XIMStyle)))
return False;
- if ((sizeof(num) + (num * sizeof(XIMStyle))) > data_len)
+ if ((2 * sizeof(CARD16) + (num * sizeof(CARD32))) > data_len)
return False;
alloc_len = sizeof(XIMStyles) + sizeof(XIMStyle) * num;
if (alloc_len < sizeof(XIMStyles))
@@ -379,7 +379,7 @@ _XimAttributeToValue(
if (num > (UINT_MAX / sizeof(XIMHotKeyTrigger)))
return False;
- if ((sizeof(num) + (num * sizeof(XIMHotKeyTrigger))) > data_len)
+ if ((2 * sizeof(CARD16) + (num * 3 * sizeof(CARD32))) > data_len)
return False;
alloc_len = sizeof(XIMHotKeyTriggers)
+ sizeof(XIMHotKeyTrigger) * num;