Source-Changes-HG archive

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

[xsrc/trunk]: xsrc/external/mit/libX11/dist initial import of libX11-1.8.3



details:   https://anonhg.NetBSD.org/xsrc/rev/5696b0489b0b
branches:  trunk
changeset: 7276:5696b0489b0b
user:      mrg <mrg%NetBSD.org@localhost>
date:      Mon Dec 19 00:57:14 2022 +0000

description:
initial import of libX11-1.8.3

diffstat:

 external/mit/libX11/dist/ChangeLog                      |  122 ++++++++++++++++
 external/mit/libX11/dist/README.md                      |    9 +
 external/mit/libX11/dist/aclocal.m4                     |   22 +-
 external/mit/libX11/dist/configure                      |   22 +-
 external/mit/libX11/dist/configure.ac                   |    2 +-
 external/mit/libX11/dist/include/X11/Xlib.h             |    4 +
 external/mit/libX11/dist/include/X11/Xlibint.h          |    2 +-
 external/mit/libX11/dist/man/XInitThreads.man           |    8 +-
 external/mit/libX11/dist/modules/im/ximcp/imLcPrs.c     |    2 +-
 external/mit/libX11/dist/nls/en_US.UTF-8/XLC_LOCALE.pre |   42 ++--
 external/mit/libX11/dist/src/ChkIfEv.c                  |    8 +-
 external/mit/libX11/dist/src/IfEvent.c                  |    6 +-
 external/mit/libX11/dist/src/OpenDis.c                  |    2 +-
 external/mit/libX11/dist/src/PeekIfEv.c                 |    4 +-
 external/mit/libX11/dist/src/PutBEvent.c                |   15 +-
 external/mit/libX11/dist/src/globals.c                  |    6 +
 external/mit/libX11/dist/src/locking.c                  |   56 ++++++-
 external/mit/libX11/dist/src/xkb/XKBBind.c              |   19 +-
 18 files changed, 276 insertions(+), 75 deletions(-)

diffs (truncated from 778 to 300 lines):

diff -r b9c5cdae8d23 -r 5696b0489b0b external/mit/libX11/dist/ChangeLog
--- a/external/mit/libX11/dist/ChangeLog        Mon Dec 19 00:54:12 2022 +0000
+++ b/external/mit/libX11/dist/ChangeLog        Mon Dec 19 00:57:14 2022 +0000
@@ -1,3 +1,125 @@
+commit 48487c4b9028e9eec5371742f51e1d64c2e17296
+Author: Alan Coopersmith <alan.coopersmith%oracle.com@localhost>
+Date:   Thu Dec 15 14:52:20 2022 -0800
+
+    libX11 1.8.3
+    
+    Signed-off-by: Alan Coopersmith <alan.coopersmith%oracle.com@localhost>
+
+commit d6d6cba90215d323567fef13d6565756c9956f60
+Author: Keith Packard <keithp%keithp.com@localhost>
+Date:   Sun Dec 11 10:32:26 2022 -0800
+
+    Update XPutBackEvent() to support clients that put back unpadded events
+    
+    It seems to be common practice of some X11 clients to pass specific event
+    types into APIs that take XEvent*.  For example, freeglut does:
+    
+       XConfigureEvent fakeEvent = {0};
+       ...
+       XPutBackEvent(fgDisplay.Display, (XEvent*)&fakeEvent);
+    
+    This can result in reads overflowing the input event when libX11 does:
+    
+       XEvent store = *event;
+    
+    =================================================================
+    ==75304==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x00016ee4a8e8 at pc 0x000101c54d14 bp 0x00016ee4a0d0 sp 0x00016ee49888
+    READ of size 192 at 0x00016ee4a8e8 thread T0
+        #0 0x101c54d10 in __asan_memcpy+0x1a4 (libclang_rt.asan_osx_dynamic.dylib:arm64e+0x3cd10)
+        #1 0x102848a18 in _XPutBackEvent PutBEvent.c:41
+        #2 0x1028490a4 in XPutBackEvent PutBEvent.c:84
+        #3 0x1013295c8 in fgOpenWindow freeglut_window.c:1178
+        #4 0x101321984 in fgCreateWindow freeglut_structure.c:108
+        #5 0x10132b138 in glutCreateWindow freeglut_window.c:1551
+        #6 0x100fb7d94 in main+0x78 (checkeredTriangles:arm64+0x100003d94)
+        #7 0x197de3e4c  (<unknown module>)
+    
+    Address 0x00016ee4a8e8 is located in stack of thread T0 at offset 840 in frame
+        #0 0x1013282f8 in fgOpenWindow freeglut_window.c:1063
+    
+      This frame has 8 object(s):
+        [32, 40) 'title.addr'
+        [64, 176) 'winAttr' (line 1066)
+        [208, 240) 'textProperty' (line 1067)
+        [272, 352) 'sizeHints' (line 1068)
+        [384, 440) 'wmHints' (line 1069)
+        [480, 672) 'eventReturnBuffer' (line 1070)
+        [736, 740) 'num_FBConfigs' (line 1072)
+        [752, 840) 'fakeEvent' (line 1074) <== Memory access at offset 840 overflows this variable
+    
+    This change allows XPutBackEvent() to support such clients without
+    risk of memory read overflow.
+    
+    Reviewed-by: Jeremy Huddleston Sequoia <jeremyhu%apple.com@localhost>
+    Tested-by: Jeremy Huddleston Sequoia <jeremyhu%apple.com@localhost>
+
+commit 496d9bfeedda89a2211ec665f9214c2693c022f4
+Author: Jeremy Huddleston Sequoia <jeremyhu%apple.com@localhost>
+Date:   Sat Dec 3 16:26:47 2022 -0800
+
+    ximcp: Address warning found by UBSan when growing an empty tree
+    
+    imLcPrs.c:681:52: runtime error: applying zero offset to null pointer
+    
+    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu%apple.com@localhost>
+
+commit 7f7bcd7b6f569e9f70e3ddd134924f178e2596b1
+Author: Takao Fujiwara <tfujiwar%redhat.com@localhost>
+Date:   Tue Dec 6 16:59:56 2022 +0000
+
+    nls: consecutive cs number in en_US.UTF-8/XLC_LOCALE
+
+commit ba095967349dff583bd0989d0ba78aa334e9bedf
+Author: Ulrich Sibiller <uli42%gmx.de@localhost>
+Date:   Wed Nov 30 23:47:29 2022 +0100
+
+    ChkIfEv.c: fix wrong handling of dpy->in_ifevent
+    
+    Is no longer a bool but a counter.
+    
+    Signed-off-by: Ulrich Sibiller <uli42%gmx.de@localhost>
+
+commit 70eaf1174e2809d1a6c43868d53f8cd844ef636a
+Author: Ulrich Sibiller <uli42%gmx.de@localhost>
+Date:   Wed Nov 30 23:42:02 2022 +0100
+
+    Indentation fixes around recent dpy->in_ifevent changes
+    
+    Use the same indentation as the surrounding code.
+    
+    Signed-off-by: Ulrich Sibiller <uli42%gmx.de@localhost>
+    Reviewed-by: Alan Coopersmith <alan.coopersmith%oracle.com@localhost>
+
+commit a9e845809bcaae22496bc8aa3ca252b410d5f39b
+Author: Matthieu Herrb <matthieu%herrb.eu@localhost>
+Date:   Fri Nov 11 18:55:23 2022 +0100
+
+    Fix 797755 Allow X*IfEvent() to reenter libX11
+    
+    - the activation logic is reversed
+    - there is also _XInternalLockDisplay() that needs protection
+    - I've found cases (in fvwm2) where the callback calls XCheckIfEvent()
+      recursively. So the flag needs to be a counter.
+    
+    Reviewed-by: Adam Jackson <ajax%redhat.com@localhost>
+
+commit bccd787a565d3a88673bfc06574c1939f98d8d72
+Author: Nia Alarie <nia%NetBSD.org@localhost>
+Date:   Thu Nov 10 22:31:47 2022 +0100
+
+    Don't use pragma inside a function, it breaks compiling with older GCCs.
+    
+    XKBBind.c:230: error: #pragma GCC diagnostic not allowed inside functions
+    
+    Signed-off-by: Thomas Klausner <wiz%gatalith.at@localhost>
+
+commit 696d19d5db7bcb1c1f582c2b1846520e7e0870cb
+Author: Oliver <halting%riseup.net@localhost>
+Date:   Fri Nov 11 17:04:00 2022 +0000
+
+    Add XFreeThreads function.
+
 commit b4f24b272c6ef888b6fcfcf80670c196b2e8f755
 Author: Alan Coopersmith <alan.coopersmith%oracle.com@localhost>
 Date:   Thu Nov 10 12:18:17 2022 -0800
diff -r b9c5cdae8d23 -r 5696b0489b0b external/mit/libX11/dist/README.md
--- a/external/mit/libX11/dist/README.md        Mon Dec 19 00:54:12 2022 +0000
+++ b/external/mit/libX11/dist/README.md        Mon Dec 19 00:57:14 2022 +0000
@@ -31,6 +31,15 @@
 
   https://www.x.org/wiki/Development/Documentation/SubmittingPatches
 
+## Release 1.8.3
+
+ * Improved handling of reentering libX11 via X*IfEvent() calls (!171, !173)
+ * Fix loading of en_US.UTF-8/XLC_LOCALE (#167, !174)
+ * Add XFreeThreads() and automatic call from a destructor function when
+   thread-safety-constructor is enabled (!167).
+ * Address issues found by UBSan and AddressSanitizer
+ * Fix build with older gcc versions (!169)
+
 ## Release 1.8.2
 
  * Allow X*IfEvent() to reenter libX11 to avoid deadlock from unsafe
diff -r b9c5cdae8d23 -r 5696b0489b0b external/mit/libX11/dist/aclocal.m4
--- a/external/mit/libX11/dist/aclocal.m4       Mon Dec 19 00:54:12 2022 +0000
+++ b/external/mit/libX11/dist/aclocal.m4       Mon Dec 19 00:57:14 2022 +0000
@@ -1793,7 +1793,7 @@
 # Documentation tools are not always available on all platforms and sometimes
 # not at the appropriate level. This macro enables a module to test for the
 # presence of the tool and obtain it's path in separate variables. Coupled with
-# the --with-xmlto option, it allows maximum flexibilty in making decisions
+# the --with-xmlto option, it allows maximum flexibility in making decisions
 # as whether or not to use the xmlto package. When DEFAULT is not specified,
 # --with-xmlto assumes 'auto'.
 #
@@ -2007,7 +2007,7 @@
 # Documentation tools are not always available on all platforms and sometimes
 # not at the appropriate level. This macro enables a module to test for the
 # presence of the tool and obtain it's path in separate variables. Coupled with
-# the --with-asciidoc option, it allows maximum flexibilty in making decisions
+# the --with-asciidoc option, it allows maximum flexibility in making decisions
 # as whether or not to use the asciidoc package. When DEFAULT is not specified,
 # --with-asciidoc assumes 'auto'.
 #
@@ -2077,7 +2077,7 @@
 # Documentation tools are not always available on all platforms and sometimes
 # not at the appropriate level. This macro enables a module to test for the
 # presence of the tool and obtain it's path in separate variables. Coupled with
-# the --with-doxygen option, it allows maximum flexibilty in making decisions
+# the --with-doxygen option, it allows maximum flexibility in making decisions
 # as whether or not to use the doxygen package. When DEFAULT is not specified,
 # --with-doxygen assumes 'auto'.
 #
@@ -2161,7 +2161,7 @@
 # Documentation tools are not always available on all platforms and sometimes
 # not at the appropriate level. This macro enables a module to test for the
 # presence of the tool and obtain it's path in separate variables. Coupled with
-# the --with-groff option, it allows maximum flexibilty in making decisions
+# the --with-groff option, it allows maximum flexibility in making decisions
 # as whether or not to use the groff package. When DEFAULT is not specified,
 # --with-groff assumes 'auto'.
 #
@@ -2269,7 +2269,7 @@
 # Documentation tools are not always available on all platforms and sometimes
 # not at the appropriate level. This macro enables a module to test for the
 # presence of the tool and obtain it's path in separate variables. Coupled with
-# the --with-fop option, it allows maximum flexibilty in making decisions
+# the --with-fop option, it allows maximum flexibility in making decisions
 # as whether or not to use the fop package. When DEFAULT is not specified,
 # --with-fop assumes 'auto'.
 #
@@ -2363,7 +2363,7 @@
 # Documentation tools are not always available on all platforms and sometimes
 # not at the appropriate level. This macro enables a module to test for the
 # presence of the tool and obtain it's path in separate variables. Coupled with
-# the --with-ps2pdf option, it allows maximum flexibilty in making decisions
+# the --with-ps2pdf option, it allows maximum flexibility in making decisions
 # as whether or not to use the ps2pdf package. When DEFAULT is not specified,
 # --with-ps2pdf assumes 'auto'.
 #
@@ -2418,7 +2418,7 @@
 # not at the appropriate level. This macro enables a builder to skip all
 # documentation targets except traditional man pages.
 # Combined with the specific tool checking macros XORG_WITH_*, it provides
-# maximum flexibilty in controlling documentation building.
+# maximum flexibility in controlling documentation building.
 # Refer to:
 # XORG_WITH_XMLTO         --with-xmlto
 # XORG_WITH_ASCIIDOC      --with-asciidoc
@@ -2451,7 +2451,7 @@
 #
 # This macro enables a builder to skip all developer documentation.
 # Combined with the specific tool checking macros XORG_WITH_*, it provides
-# maximum flexibilty in controlling documentation building.
+# maximum flexibility in controlling documentation building.
 # Refer to:
 # XORG_WITH_XMLTO         --with-xmlto
 # XORG_WITH_ASCIIDOC      --with-asciidoc
@@ -2484,7 +2484,7 @@
 #
 # This macro enables a builder to skip all functional specification targets.
 # Combined with the specific tool checking macros XORG_WITH_*, it provides
-# maximum flexibilty in controlling documentation building.
+# maximum flexibility in controlling documentation building.
 # Refer to:
 # XORG_WITH_XMLTO         --with-xmlto
 # XORG_WITH_ASCIIDOC      --with-asciidoc
@@ -2975,7 +2975,7 @@
 # Minimum version: 1.16.0
 #
 # Test if the compiler works when passed the given flag as a command line argument.
-# If it succeeds, the flag is appeneded to the given variable.  If not, it tries the
+# If it succeeds, the flag is appended to the given variable.  If not, it tries the
 # next flag in the list until there are no more options.
 #
 # Note that this does not guarantee that the compiler supports the flag as some
@@ -3132,7 +3132,7 @@
 # XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-align])
 # XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-qual])
 
-# Turn some warnings into errors, so we don't accidently get successful builds
+# Turn some warnings into errors, so we don't accidentally get successful builds
 # when there are problems that should be fixed.
 
 if test "x$SELECTIVE_WERROR" = "xyes" ; then
diff -r b9c5cdae8d23 -r 5696b0489b0b external/mit/libX11/dist/configure
--- a/external/mit/libX11/dist/configure        Mon Dec 19 00:54:12 2022 +0000
+++ b/external/mit/libX11/dist/configure        Mon Dec 19 00:57:14 2022 +0000
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for libX11 1.8.2.
+# Generated by GNU Autoconf 2.71 for libX11 1.8.3.
 #
 # Report bugs to <https://gitlab.freedesktop.org/xorg/lib/libx11/-/issues>.
 #
@@ -682,8 +682,8 @@
 # Identity of this package.
 PACKAGE_NAME='libX11'
 PACKAGE_TARNAME='libX11'
-PACKAGE_VERSION='1.8.2'
-PACKAGE_STRING='libX11 1.8.2'
+PACKAGE_VERSION='1.8.3'
+PACKAGE_STRING='libX11 1.8.3'
 PACKAGE_BUGREPORT='https://gitlab.freedesktop.org/xorg/lib/libx11/-/issues'
 PACKAGE_URL=''
 
@@ -1551,7 +1551,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libX11 1.8.2 to adapt to many kinds of systems.
+\`configure' configures libX11 1.8.3 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1622,7 +1622,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libX11 1.8.2:";;
+     short | recursive ) echo "Configuration of libX11 1.8.3:";;
    esac
   cat <<\_ACEOF
 
@@ -1794,7 +1794,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libX11 configure 1.8.2
+libX11 configure 1.8.3
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2262,7 +2262,7 @@



Home | Main Index | Thread Index | Old Index