NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

xsrc/55640: libX11 in netbsd-9's xsrc has a bug to break X Input Method (XIM)



>Number:         55640
>Category:       xsrc
>Synopsis:       libX11 in netbsd-9's xsrc has a bug to break X Input Method (XIM)
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    xsrc-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Sep 03 14:45:00 +0000 2020
>Originator:     Ryo ONODERA
>Release:        NetBSD 9
>Organization:
Ryo ONODERA // ryo%tetera.org@localhost
PGP fingerprint = 82A2 DC91 76E0 A10A 8ABB  FD1B F404 27FA C7D1 15F3
>Environment:
	
	
System: NetBSD 9 stable
Architecture: x86_64
Machine: amd64
>Description:
	
As described at upstream bug report:
https://gitlab.freedesktop.org/xorg/lib/libx11/-/issues/117

X Input Method is broken in xsrc of netbsd-9.

Please apply the following upstream patch:
https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/43/diffs?commit_id=d15c24c8b44be5e4054c8ecd0ff9dcf2c8e18e5b

xsrc of NetBSD-current is already fixed by newer libX11 import.

Originally reported by HIROSE Yuuji on twitter.com.

>How-To-Repeat:
	
pkgsrc/inputmethod/kinput2 as XIM server
and pkgsrc/www/firefox as XIM client, for example

>Fix:
	
Apply:
https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/43/diffs?commit_id=d15c24c8b44be5e4054c8ecd0ff9dcf2c8e18e5b

Index: external/mit/libX11/dist/modules/im/ximcp/imRmAttr.c
===================================================================
RCS file: /cvsroot/xsrc/external/mit/libX11/dist/modules/im/ximcp/imRmAttr.c,v
retrieving revision 1.1.1.8.4.1
diff -u -r1.1.1.8.4.1 imRmAttr.c
--- external/mit/libX11/dist/modules/im/ximcp/imRmAttr.c	5 Aug 2020 13:44:39 -0000	1.1.1.8.4.1
+++ external/mit/libX11/dist/modules/im/ximcp/imRmAttr.c	3 Sep 2020 14:38:27 -0000
@@ -1407,7 +1407,7 @@
     *names_len = 0;
     while (total > min_len) {
 	len = attr[2];
-	if (len >= (total - min_len)) {
+	if (len > (total - min_len)) {
 	    return 0;
 	}
 	*names_len += (len + 1);

>Unformatted:
 	
 	


Home | Main Index | Thread Index | Old Index