commit b8d5a7046a98a244ee8ca3c9c07fd617c800dde2
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Fri Oct 16 12:05:48 2026 -0700

    libX11 1.8.14
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 7924c23dcad8fa5e5c8c0974f1d9e05f34da4cd1
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Oct 11 15:51:42 2026 -0700

    Revert "XGetSubImage: improve efficiency by reducing number of temporary allocations"
    
    This reverts commit b5e4ac5b78befbe6d992e7005b62a0b0f53149da.
    Further review found multiple problems with the implementation.
    
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/312>

commit 797eaf0bd69524144e0df7af516b680f4b7694e9
Author: Olivier Fourdan <ofourdan@redhat.com>
Date:   Fri Sep 11 16:02:06 2026 +0200

    lcGenConv: bound byteM_parse_codeset() reads to remaining input length
    
    byteM_parse_codeset() walks candidate byte-oriented codesets and
    dereferences input bytes up to codeset->length, but it does not
    receive the remaining input length and does not check whether enough
    bytes are available before reading.
    
    When the last available byte is a valid lead byte for a multi-byte
    codeset (e.g. GBK, Big5), the function reads one byte past the
    caller-provided buffer while matching the second byte range.
    
    Pass the remaining byte count into byteM_parse_codeset() and skip
    candidate codesets whose length exceeds the available input.
    
    Found by AISLE in partnership with Red Hat
    
    AISLE-Report-PSIRTSUPT-16718
    
    CVE-2026-94285
    
    Reported-by: Aisle Research
    Assisted-by: AI
    Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/310>

commit 924fc91f08ece9cddc93609b4dc945a9cc90ea12
Author: Olivier Fourdan <ofourdan@redhat.com>
Date:   Thu Jul 30 16:32:10 2026 +0200

    ximcp: bound XIM_REGISTER_TRIGGERKEYS keylist lengths to the packet
    
    _XimRegisterTriggerKeysCallback() receives the full packet length from
    the transport but did not pass it to _XimRegisterTriggerkey(), which
    trusted the wire CARD32 on-keys and off-keys length fields for Xmalloc
    and memcpy.
    
    A malicious XIM_REGISTER_TRIGGERKEYS message with a valid outer frame
    but oversized inner lengths can therefore cause an out-of-bounds read
    and crash the client.
    
    Pass the remaining payload size into the static helper and reject
    on-keys/off-keys lengths that do not fit before copying.
    
    Found by AISLE in partnership with Red Hat
    
    AISLE-Report-PSIRTSUPT-16671
    
    CVE-2026-94284
    
    Reported-by: Aisle Research
    Co-authored-by: AI
    Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/310>

commit f263bbca24d04c766775e7af2e203ca41b4ece2e
Author: Olivier Fourdan <ofourdan@redhat.com>
Date:   Thu Jul 30 09:51:54 2026 +0200

    ximcp: bound XIM_OPEN_REPLY attribute lengths to the received packet
    
    _XimGetAttributeID() trusted the wire-embedded nBytesIMATTR /
    nBytesICATTR values and per-attribute lengths from a malicious or
    malformed XIM_OPEN_REPLY without comparing them to the actual number
    of bytes returned by _XimRead().
    
    That allows for potential out-of-bounds reads (and possible client
    crashes) while parsing IM/IC attribute lists.
    
    Pass the remaining OPEN_REPLY payload length from _XimOpen() via an
    unused private field (now "open_attr_length") so that we can reject
    nested totals that exceed that size, and compute padded attribute entry
    sizes in a wide type so CARD16 wraparound cannot defeat the checks.
    
    Found by AISLE in partnership with Red Hat
    
    AISLE-Report-PSIRTSUPT-15963
    
    CVE-2026-94283
    
    Reported-by: Aisle Research
    Co-authored-by: AI
    Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/310>

commit 6d4432b13c0b3b6a644c13de9c793a14db48d545
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Sep 16 15:27:33 2026 +1000

    xkb: Check the keysym range in _XkbReadKeyActions (CVE-2026-88806)
    
    A malicious server could send a XkbGetMap reply with
    firstKeyAct + nKeyActs exceeding max_keycode=+ 1. This would
    cause an OOB write into info->map->key_sym_map[rep->firstKeyAct + i].
    
    This brings this function in line with the other functions in this file
    which already have checks in place.
    
    This vulnerability was discovered by:
    Adam Bedard working with TrendAI Zero Day Initiative
    
    ZDI-CAN-32061
    
    CVE-2026-88806
    
    Assisted-by: Claude:claude-opus-4-6
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/309>

commit 13f9b8de400335f4b86bb0672da02f8166c0e796
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Aug 15 19:05:51 2026 -0700

    XOpenDisplay: avoid NULL dereference in out-of-memory error path
    
    In the highly unlikely event we are able to allocate memory for the
    Display structure, but not the display_name, don't dereference the
    not-yet-allocated xcb structure in the error handler.
    
    Reported by gcc 16.1 with -fanalyzer:
    
    OpenDis.c: In function ‘OutOfMemory’:
    OpenDis.c:712:27: warning: dereference of NULL ‘0’ [CWE-476]
     [-Wanalyzer-null-dereference]
      712 |         xcb_connection_t *connection = dpy->xcb->connection;
          |                           ^~~~~~~~~~
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/307>

commit 799e2da7709b3da1f87b502321c10eddefc0246c
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Aug 8 11:40:55 2026 -0700

    XSetFontPath: zero-initialize packed font path buffer
    
    Avoids leaving uninitialized data in padding bytes.
    
    Closes: https://gitlab.freedesktop.org/xorg/lib/libx11/-/work_items/248
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/306>

commit 80dbb7d029b2bbf58b96421e59c83e34f763ab70
Author: Charles G Waldman <cgw@alum.mit.edu>
Date:   Tue Jul 28 17:00:21 2026 -0500

    _XSend: treat xcb_writev returning 0 as failure
    
    I/O errors from writes were not caught because _XSend was
    checking for xcb_writev returning "< 0".  However xcb_writev
    only returns 0 or 1, so the I/O error would only be caught
    later in a read-side call.  Correct the check so that a failed
    write raises _XIOError at write time, and discard the output
    buffer in that case: nothing in it can be transmitted, and
    if the application's I/O error exit handler returns, a full
    buffer must not be left behind (see previous commit).
    
    Signed-off-by: Charles G Waldman <cgw@alum.mit.edu>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/305>

commit 572f5282d4f7311c83d7b6df1d1e190deefc3fd3
Author: Charles G Waldman <cgw@alum.mit.edu>
Date:   Tue Jul 28 16:57:49 2026 -0500

    _XSend: discard the output buffer after an I/O error
    
    Since XSetIOErrorExitHandler (1.7.0), _XIOError can return and the
    client survives with XlibDisplayIOError set.  _XSend's early return
    on that flag left dpy->bufptr untouched, so the output buffer could
    stay full forever: _XData32 and _XData16 then loop indefinitely
    waiting for space, and _XGetRequest returns NULL to callers that do
    not expect it.  Nothing in the buffer can ever be transmitted, so
    reset bufptr when the flag is set.
    
    Fixes: https://gitlab.freedesktop.org/xorg/lib/libx11/-/work_items/247
    
    Signed-off-by: Charles G Waldman <cgw@alum.mit.edu>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/305>

commit bb2fe763e11b71d83371305750e0865f19adcc6c
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Jul 12 15:03:47 2026 -0700

    XkbSetIndicatorMap: avoid undefined behavior due to left shift overflow
    
    Fix two left shift overflows reported by UBSan
    
    Closes: #246
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/304>

commit 1529c98626dbd667fad853486a9fbeca19158a0c
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Jul 12 14:55:43 2026 -0700

    nls: Add ca_ES.UTF-8@valencia locale
    
    Closes: #234
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/303>

commit d5f334d280b6b11dc5e610b85a3d94bc0597d4fe
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Jul 12 14:44:14 2026 -0700

    Xutil.h: add include of Xresource.h
    
    Two macros in Xutil.h call functions defined in Xresource.h, which is
    undefined behavior in the C standards when function declarations are
    not included.
    
    Closes: #242
    Reported-by: Sergey Bylokhov @mrserb
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/302>

commit b5e4ac5b78befbe6d992e7005b62a0b0f53149da
Author: qkot <catsarecool776@gmail.com>
Date:   Tue Jan 16 18:10:52 2024 +1100

    XGetSubImage: improve efficiency by reducing number of temporary allocations
    
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/239>

commit b10abf6b99d5acf846c26f305f1a14a86360a96c
Author: Mikhail Dmitrichenko <m.dmitrichenko222@gmail.com>
Date:   Wed Apr 15 11:18:31 2026 +0300

    xkb: fix incorrect size check when growing doodads in a section
    
    In XkbAddGeomDoodad(), when adding a doodad to a specific section
    (section != NULL), there is a comparison between section->num_doodads
    and geom->sz_doodads instead of the section's own section->sz_doodads.
    
    The else branch (global geometry doodads) was already correct.
    
    Compare section->num_doodads against section->sz_doodads to prevent
    a potential out-of-bounds.
    
    Found by Linux Verification Center (linuxtesting.org) with SVACE.
    
    Signed-off-by: Mikhail Dmitrichenko <m.dmitrichenko222@gmail.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/300>

commit 13fd1cbb6f5140fb620e7769def1dc02ab0e5391
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Mar 15 14:52:08 2026 -0700

    XlibInt.c: use correct type for Win32 in SocketBytesReadable()
    
    Fixes compiler error of:
    
    XlibInt.c: In function 'SocketBytesReadable':
    XlibInt.c:1254:50: error: passing argument 3 of 'ioctlsocket' from
     incompatible pointer type [-Wincompatible-pointer-types]
     1254 |     ioctlsocket(ConnectionNumber(dpy), FIONREAD, &bytes);
          |                                                  ^~~~~~
          |                                                  |
          |                                                  int *
    In file included from /usr/share/mingw-w64/include/windows.h:92,
                     from /usr/i686-w64-mingw32/include/X11/Xwindows.h:77,
                     from /usr/i686-w64-mingw32/include/X11/Xthreads.h:98:
    /usr/share/mingw-w64/include/winsock.h:281:76: note: expected 'u_long *' {aka 'long unsigned int *'} but argument is of type 'int *'
      281 |   WINSOCK_API_LINKAGE int WSAAPI ioctlsocket(SOCKET s,__LONG32 cmd,u_long *argp);
          |                                                                    ~~~~~~~~^~~~
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/299>

commit 92d226e34a089adcd5bce0cc5f95bf8ea19ad8fe
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Mar 15 14:31:37 2026 -0700

    XlibInt.h: prevent Win32 CreateWindow macro from leaking into our code
    
    Prevents compiler errors such as:
    
    ../../include/X11/Xlibint.h:542:16: error: 'xCreateWindowAReq' undeclared
     (first use in this function); did you mean 'xCreateWindowReq'?
      542 |         req = (x##name##Req *) _XGetRequest(dpy, X_##name, sz)
          |                ^
    ../../include/X11/Xlibint.h:554:9: note: in expansion of macro 'GetReqSized'
      554 |         GetReqSized(name, SIZEOF(x##name##Req), req)
          |         ^~~~~~~~~~~
    cmsCmap.c:159:17: note: in expansion of macro 'GetReq'
      159 |                 GetReq(CreateWindow, req);
          |                 ^~~~~~
    
    Fixes: eb1c272a ("Fix a9e845 and 797755 Allow X*IfEvent() to reenter libX11")
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/299>

commit 6c75545a1deb51f5903992c52af6bc35cc9bc103
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Feb 7 13:38:13 2026 -0800

    libX11 1.8.13
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit c29b310531d47f910f48a1cb76a78a5264f7c1f8
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Jan 11 11:20:41 2026 -0800

    gitlab CI: drop the ci-fairy check-mr job
    
    The only thing this checked was the checkbox for allowing maintainers to
    edit the MR. Changed permissions checks now fail this job but luckily
    the setting it checked has been the default for years anyway so we can
    drop it.
    
    https://gitlab.freedesktop.org/freedesktop/ci-templates/-/issues/81
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/297>

commit 1e511b0cb775085cdc83d2837eb9b49567bf5516
Author: Julian Orth <ju.orth@gmail.com>
Date:   Fri Oct 24 20:15:37 2025 +0200

    Ignore XkbMapNotify events that don't belong to the core keyboard
    
    Such events can contain values that are incompatible with the core
    keyboard map.
    
    Fixes a potentially fatal error when such values are later used in a
    XkbGetMap request.
    
    Signed-off-by: Julian Orth <ju.orth@gmail.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/293>

commit 369c6a806554429798b531cbf4267d8c8fcf6ed1
Author: Pierre Le Marre <dev@wismill.eu>
Date:   Tue Oct 14 22:53:06 2025 +0200

    xkb: Fix key type level names
    
    Fixed invalid level names count for key types without level names.
    
    Signed-off-by: Pierre Le Marre <dev@wismill.eu>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/292>

commit ff409a48f9a0d43115b7565b5803cc65151f1dda
Author: Pierre Le Marre <dev@wismill.eu>
Date:   Tue Oct 14 10:26:17 2025 +0200

    xkb: Fix default key types
    
    Before this commit, using xkbcomp to compile a keymap that omits the key
    type `ALPHABETIC` leads to either a wrong serialization (`-xkb` output)
    or a server error such as:
    
        X Error of failed request:  BadValue (integer parameter out of range for operation)
          Major opcode of failed request:  135 (XKEYBOARD)
          Minor opcode of failed request:  9 (XkbSetMap)
          Value in failed request:  0x8010202
          Serial number of failed request:  55
          Current serial number in output stream:  60
    
    Indeed, there is an error in the default key maps: the second field of
    `XkbKTMapEntryRec` if a level index, not a modifier mask. While it worked
    *by chance* for `ShiftMask` (e.g. the `TWO_LEVEL` type), it does not work
    for `LockMask` (e.g. the `ALPHABETIC` type).
    
    Fixed by using the correct level indices.
    
    It probably went unnoticed for so long because xkbcomp and libxkbcommon
    < 1.12 always use all the key types, while libxkbcommon ≥ 1.12 does not
    serialize unused key types. The latter case may result in a keymap that
    omits `ALPHABETIC`, e.g. with keyboard layouts with 4+ levels which use
    alternative key types such as `FOUR_LEVEL_ALPHABETIC`.
    
    Signed-off-by: Pierre Le Marre <dev@wismill.eu>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/292>

commit 76a930ca995e44be3b3b454a2d1b8844377527dc
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Tue Sep 23 16:58:13 2025 -0700

    AUTHORS: update credits
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/291>

commit 7b9a1dba6fa3767f515c7b3ec1fb203dab9db4b0
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Tue Sep 23 16:44:06 2025 -0700

    Drop vestiges of OS/2 support
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/291>

commit 06516f8c51eb62683cbcf0540c6001759786eb52
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Tue Sep 23 15:14:34 2025 -0700

    xkb: fix include of config.h and drop unused DEBUG check
    
    I can find nowhere in the source history where there was DEBUG code
    that needed to include <stdio.h>, but the include of config.h should
    never have been inside the DEBUG ifdef.
    
    Resolves warnings from gcc 15 in 32-bit builds on Solaris of:
    ../../src/config.h:306:9: warning: "_FILE_OFFSET_BITS" redefined
    
    Fixes: 7eee605e ("Conditionally include config.h in Xlib source")
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/290>

commit 503e5aa44ae2beca60202fba5e7cd027bce0337c
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Mon Sep 1 13:05:34 2025 -0700

    xcb_io: fix build with configure --disable-xthreads
    
    Closes: #232
    Fixes: da97120f ("xcb: Clarify the XInitThreads error message")
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/289>

commit 622de26180b295eddd39bd4be1528f2358885095
Author: Keith Packard <keithp@keithp.com>
Date:   Mon Aug 22 20:44:32 2022 -0700

    Avoid memory leak in XKeysymToString
    
    Instead of calling malloc each time this function is invoked, use
    the Quark database to ensure the return value lasts forever while not
    leaking memory.
    
    Signed-off-by: Keith Packard <keithp@keithp.com>
    Signed-off-by: Peter Harris <pharris2@rocketsoftware.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/282>

commit 8b77c86a061df01069c94f8e16713a7345c99b9c
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Aug 2 18:38:26 2025 -0700

    Strip trailing whitespace from source files
    
    Performed with: `git ls-files | xargs perl -i -p -e 's{[ \t]+$}{}'`
    
    `git diff -w` & `git diff -b` show no diffs from this change
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/287>

commit e003f52661679e95b51ff24e317af6178fe2a73c
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Jul 13 10:57:31 2025 -0700

    man pages: Use .BR markup for references to other man pages
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/286>

commit d71dbf816b710f95b5e16a421d8d70c8207b2082
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Jul 13 10:16:33 2025 -0700

    XSetErrorHandler.man: .BR expects at least 2 arguments, got 1
    
    Fix warning from `groff -rCHECKSTYLE=10`
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/286>

commit 0bddfd82d0e11f520ac5776dfc0b56a95bd47130
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Jul 13 10:09:14 2025 -0700

    Compose.man: \\ should be \e in troff markup
    
    Fixes warnings from `mandoc -T lint`:
    mandoc: Compose.5:121:27: WARNING: undefined escape, printing literally: \\
    mandoc: Compose.5:122:10: WARNING: undefined escape, printing literally: \\
    mandoc: Compose.5:129:29: WARNING: undefined escape, printing literally: \\
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/286>

commit eb400f6fda059f5fc9d03e97a233175935e06090
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Jul 13 10:04:44 2025 -0700

    man pages: remove extraneous paragraph macros
    
    Fixes warnings from `mandoc -T lint`:
    
    mandoc: XChangeKeyboardControl.3:156:2: WARNING: skipping paragraph macro: PP empty
    mandoc: XcmsAllocColor.3:147:2: WARNING: skipping paragraph macro: PP empty
    mandoc: XcmsStoreColor.3:183:2: WARNING: skipping paragraph macro: PP empty
    mandoc: XConfigureWindow.3:236:2: WARNING: skipping paragraph macro: PP empty
    mandoc: XCreateWindow.3:221:2: WARNING: skipping paragraph macro: PP empty
    mandoc: XGetVisualInfo.3:114:2: WARNING: skipping paragraph macro: PP empty
    mandoc: XOpenIM.3:73:2: WARNING: skipping paragraph macro: PP empty
    mandoc: XQueryExtension.3:44:2: WARNING: skipping paragraph macro: PP after SH
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/286>

commit 8848085323124d64dfa0f80e0b274ac3e1ceec05
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Jul 13 09:47:54 2025 -0700

    man pages: remove whitespace at end of lines in xkb man pages
    
    Clears 6571 complaints from `mandoc -T lint` of the form:
    mandoc: man/xkb/XkbActionCtrls.3:107:4: STYLE: whitespace at end of input line
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/286>

commit 8a32fad341512c8ff2e771a14a3dc78bf9e6a49f
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Jun 28 14:34:31 2025 -0700

    gitlab CI: ensure docs can be generated too
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/285>

commit 7f8305c779ac6948d7261764f5ffb8ae9aa975b1
Author: Weng Xuetian <wengxt@gmail.com>
Date:   Fri Apr 18 02:22:06 2025 -0700

    imDefIc: Clear fabricated state on unfocus.
    
    When unsetting focus, the event filter is removed. This means a pending
    fabricated event may not yet be sent to filter.
    
    All the fabricated event state should be cleared and the pending sync
    reply sent back as if the state is unfabricated.
    
    Fix #235
    
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/283>

commit 59917d28a3c41ad22d6fc52e323cafe2cdd596d5
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Mar 8 15:23:04 2025 -0800

    libX11 1.8.12
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 5f8077b257ea27a5fd6f114d2bc15284b2416b3c
Author: Olivier Fourdan <ofourdan@redhat.com>
Date:   Thu Nov 28 14:09:04 2024 +0100

    xkb: Fix buffer overflow in XkbChangeTypesOfKey()
    
    If XkbChangeTypesOfKey() is called with nGroups == 0, it will resize the
    key syms to 0 but leave the key actions unchanged.
    
    If later, the same function is called with a non-zero value for nGroups,
    this will cause a buffer overflow because the key actions are of the wrong
    size.
    
    To avoid the issue, make sure to resize both the key syms and key actions
    when nGroups is 0.
    
    (cherry picked from xorg/xserver@0e4ed94952b255c04fe910f6a1d9c852878dcd64)
    
    Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/279>

commit 865fd56aeb5c5d1812cce46ed197873c48b08692
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Nov 1 15:45:08 2020 -0800

    xkb: always set *mask_rtrn in XkbVirtualModsToReal
    
    Resolves warning from Oracle Parfait static analyser:
    
    Error: Uninitialised memory
       Uninitialised memory variable [uninitialised-mem-var] (CWE 457):
          Possible access to uninitialised memory referenced by variable 'mask'
            at line 721 of xkb/XKBMisc.c in function 'XkbUpdateKeyTypeVirtualMods'.
            Path in callee avoiding write at line 720
              mask allocated at line 718
    
    (cherry picked from xorg/xserver@a6574033f464c7cde02bce8f1b130ff6b2b2d9eb)
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/279>

commit 88d1a84ca3c0f87ffcb83b9b96e34a7121d5e2d3
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Feb 22 11:59:13 2025 -0800

    XkbChangeTypesOfKey: verify newTypesIn is not null before using it
    
    Based on xorg/xserver@97c9e6a7139e07a0761be05034fae42fcd65ba36
    
    Fixes: 8ba0ca32 ("Janitor: ansification, make distcheck, compiler warnings.")
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/279>

commit 48a1335cab13d883e15b4eb5e9a5e080289a5c64
Author: Siddhesh Poyarekar <siddhesh.poyarekar@gmail.com>
Date:   Tue May 29 10:17:50 2012 +0530

    xkb: Allocate size_syms correctly when width of a type increases
    
    The current code seems to skip syms with width less than
    type->num_levels when calculating the total size for the new
    size_syms. This leads to less space being allocated than necessary
    during the next phase, which is to copy over the syms to the new
    location. This results in an overflow leading to a crash.
    
    (cherry picked from xorg/xserver@42ae2e8199fe875319978249963de7499607988b)
    
    Signed-off-by: Siddhesh Poyarekar <siddhesh.poyarekar@gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/279>

commit 158be3ebd7d1da4d16bfc2dee82aac477fbcb833
Author: Daniel Stone <daniel@fooishbar.org>
Date:   Wed Mar 21 02:04:12 2007 +0200

    XKB: Fix size_syms calculation bug
    
    Apparently it needed to be nSyms*15/10, not *12/10; make it match the
    other allocation code.
    
    (cherry picked from xorg/xserver@f292de2ef13dc994a38029cee9e2642576893332)
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/279>

commit d6e1ca046aef42ec5465ece5edbdffe0bc7c0cb6
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Feb 22 10:13:52 2025 -0800

    XkbFreeKeyboard: set xkb->geom to NULL after freeing it
    
    Because XkbFreeGeometry takes a pointer to the geometry structure,
    and not the overall xkb structure like the other XkbFree*() calls,
    the caller is responsible for clearing the xkb->geom pointer to
    ensure it is not used after free.
    
    Based on xorg/xserver@629798c73ad76a77fa6a55bc6403fd9b95ade2bb
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/279>

commit 4a3ca6eeced253aacb0e2ecf640b9eb93863badc
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Feb 23 15:19:54 2025 -0800

    x11.pc: Add URL field
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/280>

commit 23f0352eca362515d598bfdbd8ecec070dcd1b28
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Feb 2 13:54:27 2025 -0800

    libX11 1.8.11
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>

commit 4665733565eda7ae32302c3abf1aaf5075b8abde
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sat Jan 11 10:31:08 2025 -0800

    configure: drop `pthread-stubs` dependency on Dragonfly, FreeBSD, & NetBSD
    
    syncs with changes to libxcb 1.16 & 1.16.1
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/277>

commit ba15d51bfe789e84e291ccfb31d5f0ae6192969e
Author: Aaron Muir Hamilton <aaron@correspondwith.me>
Date:   Sun Oct 27 21:42:23 2024 -0400

    ximcp/imRm.c: allow XNArea with OnTheSpot
    
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/270>

commit 61175323a8a374aaedb139894987ddaf2bb2ba27
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Mon Dec 30 10:27:23 2024 -0800

    cmsColNm: remove obsolete comment about FirstCmp being public
    
    It was made a static function in May 14, 1991 by rws in
    commit "make FirstCmp static" for X11R5
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/276>

commit 7c75a066454fbafe586f7c24aeee65348f9d2bcc
Author: Pierre Le Marre <dev@wismill.eu>
Date:   Mon Dec 9 14:51:17 2024 +0100

    Fix misuse of UCSConvertCase in XConvertCase
    
    There are two issues with the use of `UCSConvertCase` in `XConvertCase`:
    
    - Some Latin-1 keysyms do not map within Latin-1, e.g. `ssharp`.
      Only Latin-1 keysyms have the same value as the Unicode code point of
      their corresponding character. So `UCSConvertCase` does not work for
      some Latin-1 keysyms as it returns Unicode code points outside Latin-1
      that do not match their corresponding keysyms values.
    - Some Unicode keysyms should map to Latin-1 keysyms (<0x100). But the
      Unicode keysym mask 0x01000000 is applied blindly to the result of
      `UCSConvertCase`, resulting in invalid Unicode keysyms (0x010000nn)
      while they should be Latin-1 keysyms.
    
    Example with ß/ẞ:
    
    ```c
    KeySym lower, upper;
    
    XConvertCase(XK_ssharp, &lower, &upper);
    // Expected: lower == XK_ssharp, upper == U1E9E
    // Got:      lower == XK_ssharp, upper == 0x1E9E
    
    XConvertCase(U1E9E, &lower, &upper);
    // Expected: lower == XK_ssharp, upper == U1E9E
    // Got:      lower == 0x10000df, upper == U1E9E
    ```
    
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/274>

commit 5a7d94e07fc7e4a10d6399f5e44793fa0c896af6
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Tue Nov 12 12:40:04 2024 -0800

    xkb: avoid undefined behavior due to left shift overflow
    
    Closes: #225
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/273>

commit 1ef3c6f010c03eade038b4e662c0eef47014800d
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Nov 10 15:38:25 2024 -0800

    XIM_SET_PAD: add do ... while (0) to avoid -Wextra-semi-stmt warnings
    
    Clears 8 warnings from clang of the form:
    
    imDefIc.c:366:29: warning: empty expression statement has no effect;
     remove unnecessary ';' to silence this warning [-Wextra-semi-stmt]
            XIM_SET_PAD(&buf_s[2], len);            /* pad */
                                       ^
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/272>

commit 22ded6890e9d11cc9eca59737fc531d40ec284a6
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Nov 10 15:30:48 2024 -0800

    Xrm.c: remove unneccessary ; after {}
    
    Clears 2 clang warnings:
    
    Xrm.c:1186:51: warning: empty expression statement has no effect;
     remove unnecessary ';' to silence this warning [-Wextra-semi-stmt]
                while (is_space(bits = next_char(c, str))) {};
                                                             ^
    Xrm.c:1191:48: warning: empty expression statement has no effect;
     remove unnecessary ';' to silence this warning [-Wextra-semi-stmt]
                    while (is_space(bits = next_char(c, str))) {};
                                                                 ^
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/272>

commit b7f59114abb4a4766d7fd5805d0435d023cd0c4b
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Nov 10 15:29:21 2024 -0800

    DL_APPEND/DL_DELETE: remove trailing semicolon from definitions
    
    Clears 2 clang warnings:
    
    XlibInt.c:672:26: warning: empty expression statement has no effect;
     remove unnecessary ';' to silence this warning [-Wextra-semi-stmt]
        DL_APPEND(*head, add);
                             ^
    XlibInt.c:694:36: warning: empty expression statement has no effect;
     remove unnecessary ';' to silence this warning [-Wextra-semi-stmt]
                DL_DELETE(*head, event);
                                       ^
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/272>

commit da431b8f7ff21d36b5a88237c991ca43b185d65f
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Nov 10 15:25:40 2024 -0800

    xcb_io.c: add do ... while (0) to avoid -Wextra-semi-stmt warnings
    
    Clears 10 warnings from clang of the form:
    
    xcb_io.c:177:56: warning: empty expression statement has no effect;
     remove unnecessary ';' to silence this warning [-Wextra-semi-stmt]
                                             xcb_xlib_unknown_req_in_deq);
                                                                         ^
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/272>

commit a53c45d69e88799e59dfbd324843df65a30cf4a9
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Nov 10 13:16:41 2024 -0800

    CI_GET_*_INFO_*: add do ... while (0) to avoid -Wextra-semi-stmt warnings
    
    Clears 24 warnings from clang of the form:
    
    TextExt16.c:63:34: warning: empty expression statement has no effect;
     remove unnecessary ';' to silence this warning [-Wextra-semi-stmt]
            CI_GET_DEFAULT_INFO_1D (fs, def);
                                            ^
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/272>

commit 68912288218527846b04cbe8d647a2c252e82e20
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Nov 10 13:11:12 2024 -0800

    RETURN: add do ... while (0) to avoid -Wextra-semi-stmt warnings
    
    Clears 5 warnings from clang of the form:
    
    RdBitF.c:141:32: warning: empty expression statement has no effect;
     remove unnecessary ';' to silence this warning [-Wextra-semi-stmt]
                RETURN (BitmapFileInvalid);
                                          ^
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/272>

commit 38c642c8ebd69f761fdda03664eba6889a331598
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Nov 10 13:08:31 2024 -0800

    poly.h: add do ... while (0) to avoid -Wextra-semi-stmt warnings
    
    Clears 3 warnings from clang of the form:
    
    PolyReg.c:224:67: warning: empty expression statement has no effect;
     remove unnecessary ';' to silence this warning [-Wextra-semi-stmt]
                BRESINITPGONSTRUCT(dy, top->x, bottom->x, pETEs->bres);
                                                                      ^
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/272>

commit 906bf4a86d174ed20fda925d8f82de023aa26d2d
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Nov 10 12:37:53 2024 -0800

    PutCommandResource: add do ... while (0) to avoid -Wextra-semi-stmt warnings
    
    Clears 4 warnings from clang of the form:
    
    ParseCmd.c:158:43: warning: empty expression statement has no effect;
     remove unnecessary ';' to silence this warning [-Wextra-semi-stmt]
                        PutCommandResource(options[i].value);
                                                            ^
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/272>

commit c0768ab687fa07f83d0030dd161f4aa49cbe84f8
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Nov 10 12:35:44 2024 -0800

    GetFunc: add do ... while (0) to avoid -Wextra-semi-stmt warnings
    
    Clears 4 warnings from clang of the form:
    
    CrGlCur.c:140:64: warning: empty expression statement has no effect;
     remove unnecessary ';' to silence this warning [-Wextra-semi-stmt]
        GetFunc (TryShapeCursorFunc, "XcursorTryShapeCursor", func);
                                                                   ^
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/272>

commit 49350501687d9633a86ae317d5311228e7d812e8
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Nov 10 12:33:01 2024 -0800

    _XCreateMutex/_XFreeMutex: remove trailing semicolon from definitions
    
    Makes them match the style of the other macros here and clears
    up 5 clang warnings of the form:
    
    Context.c:194:27: warning: empty expression statement has no effect;
     remove unnecessary ';' to silence this warning [-Wextra-semi-stmt]
            _XCreateMutex(&db->linfo);
                                     ^
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/272>

commit 41c4aa408c3488e920e1f08eb946442faa051e6c
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Nov 10 11:52:19 2024 -0800

    OneDataCard32: add do ... while (0) to avoid -Wextra-semi-stmt warnings
    
    Clears 13 warnings from clang of the form:
    
    Backgnd.c:44:72: warning: empty expression statement has no effect;
     remove unnecessary ';' to silence this warning [-Wextra-semi-stmt]
        OneDataCard32 (dpy, NEXTPTR(req,xChangeWindowAttributesReq), pixel);
                                                                           ^
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/272>

commit 68e6caad8fcad28143769384536d4529fe0161c4
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Nov 10 11:48:41 2024 -0800

    _XkbCheckPendingRefresh: add do ... while (0) to avoid -Wextra-semi-stmt
    
    Clears 6 warnings from clang of the form:
    
    XKBBind.c:74:48: warning: empty expression statement has no effect;
     remove unnecessary ';' to silence this warning [-Wextra-semi-stmt]
        _XkbCheckPendingRefresh(dpy, dpy->xkb_info);
                                                   ^
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/272>

commit 563ddd4ff5575e3f8bbf635cbdc339b09a7e285e
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Nov 10 11:09:56 2024 -0800

    BufAlloc: add do { ... } while (0) to avoid -Wextra-semi-stmt warnings
    
    Clears 46 warnings from clang of the form:
    
    XKB.c:207:69: warning: empty expression statement has no effect;
     remove unnecessary ';' to silence this warning [-Wextra-semi-stmt]
            BufAlloc(char *, out, (((size * 2) + (unsigned) 3) / 4) * 4);
                                                                        ^
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/272>

commit 5e22c4b3d56d8327d8610faabc8ecfc0c45399de
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Sun Nov 10 11:06:28 2024 -0800

    set_toupper: add do { ... } while (0) to avoid -Wextra-semi-stmt warnings
    
    Clears 4 warnings from clang of the form:
    
    lcUtil.c:53:18: warning: empty expression statement has no effect;
     remove unnecessary ';' to silence this warning [-Wextra-semi-stmt]
            set_toupper(ch1);
                            ^
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Part-of: <https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/272>

commit 4cb567d9a05b4a995a50e2fe178c2e697d339668
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
