xserver/os
Enrico Weigelt, metux IT consult 29b11b39ab os: let vpnprintf() accept %X
Several pieces of the code, as well as drivers are using %X, which
we don't support, so leading to error messages like this:

[2025-02-27 14:28:44] BUG: 'if (f[f_idx])'
[2025-02-27 14:28:44] BUG: ../xserver/os/log.c:538 in vpnprintf()
[2025-02-27 14:28:44] Unsupported printf directive 'X'
[2025-02-27 14:28:44]
[2025-02-27 14:28:44] Backtrace:
[2025-02-27 14:28:44] unw_get_proc_name failed: no unwind info found [-10]
[2025-02-27 14:28:44] 0: /usr/lib/Xorg (?+0x0) [0x5f4d1261bc47]
[2025-02-27 14:28:44] 1: /usr/lib/Xorg (LogVHdrMessageVerb+0x10f) [0x5f4d1261ca3f]
[2025-02-27 14:28:44] 2: /usr/lib/Xorg (LogHdrMessageVerb+0x85) [0x5f4d1261cae5]
[2025-02-27 14:28:44] 3: /usr/lib/Xorg (xf86VDrvMsgVerb+0x54) [0x5f4d12636604]
[2025-02-27 14:28:44] 4: /usr/lib/Xorg (xf86DrvMsg+0x97) [0x5f4d126367d7]
[2025-02-27 14:28:44] 5: /usr/lib/Xorg (xf86PrintEDID+0x545) [0x5f4d12654315]
[2025-02-27 14:28:44] 6: /usr/lib/Xorg (xf86OutputSetEDID+0x1bd) [0x5f4d12657e0d]

In the longer run, we'll have to decide whether we actually want to
implement the upper-case directive or change all callers to lower-case.

But for now it's better to just accept %X and interpret it as lower-case,
in order to fix those error messages. Whether it's printed as upper or
lower case is more or less an aesthetic matter.

Reported-By: guido iodice <guido.iodice@gmail.com>
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1846>
(cherry picked from commit 628e94b164)
2026-01-25 10:40:01 -08:00
..
.gitignore dix and os: gitignore dix.O and os.O 2011-09-23 17:14:47 -07:00
access.c os: if getaddrinfo() is available, use it, even if IPv6 support is disabled 2026-01-25 10:39:58 -08:00
auth.c os: drop SUN-DES-1 authentication 2026-01-25 10:39:53 -08:00
backtrace.c os: backtrace: Fix -Wincompatible-pointer-types compiler error on 32-bit targets 2026-01-25 10:40:00 -08:00
busfault.c include: move busfault.h out of public include dir 2026-01-19 12:32:26 -08:00
busfault.h os: fix missing include of misc.h in busfault.h 2026-01-19 12:48:30 -08:00
client.c Return NULL in *cmdname if the client argv or argv[0] is NULL 2026-01-25 10:39:56 -08:00
connection.c os: drop upstart specific SIGSTOP signaling logic 2026-01-25 10:40:00 -08:00
inputthread.c os, shm: fcntl()'s third argument is integer, not pointer 2020-12-18 09:36:30 -05:00
io.c Remove remnants of support for SVR4 systems other than Solaris & illumos 2026-01-25 10:39:56 -08:00
log.c os: let vpnprintf() accept %X 2026-01-25 10:40:01 -08:00
meson.build os: drop SUN-DES-1 authentication 2026-01-25 10:39:53 -08:00
mitauth.c os: Use memcpy() instead of memmove() when buffers are known not to overlap 2022-08-29 21:10:51 +00:00
oscolor.c os: unexport OsLookupColor() 2026-01-19 12:47:57 -08:00
osdep.h dix: Use __builtin_popcountl if available to replace Ones() 2026-01-25 10:39:57 -08:00
osinit.c os/osinit: fix build when execinfo.h is missing 2026-01-25 10:40:00 -08:00
ospoll.c os: move xserver_poll.h into os/ directory 2026-01-25 10:39:54 -08:00
ospoll.h os: Add ospoll interface [v2] 2016-07-21 15:04:47 -04:00
reallocarray.c Import reallocarray() from OpenBSD 2015-04-21 16:57:08 -07:00
strcasecmp.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
strcasestr.c os: fix mising prototype / include on WIN32 builds 2026-01-19 12:32:19 -08:00
strlcat.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
strlcpy.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
strndup.c os: Ensure <dix-config.h> is included in strndup.c 2013-02-14 09:20:46 -08:00
timingsafe_memcmp.c timingsafe_memcmp: Fix meson build 2017-05-10 10:56:16 -04:00
utils.c os: drop upstart specific SIGSTOP signaling logic 2026-01-25 10:40:00 -08:00
WaitFor.c os: NextDPMSTimeout: mark intentional fallthroughs in switch 2026-01-25 10:39:57 -08:00
xdmauth.c os: Use memcpy() instead of memmove() when buffers are known not to overlap 2022-08-29 21:10:51 +00:00
xdmcp.c os: if getaddrinfo() is available, use it, even if IPv6 support is disabled 2026-01-25 10:39:58 -08:00
xprintf.c Remove "All rights reserved" from Oracle copyright notices 2023-02-25 09:40:41 -08:00
xserver_poll.c os: move xserver_poll.h into os/ directory 2026-01-25 10:39:54 -08:00
xserver_poll.h os: move xserver_poll.h into os/ directory 2026-01-25 10:39:54 -08:00
xsha1.c include: move xsha1.h to os/ 2026-01-19 12:32:20 -08:00
xsha1.h include: move xsha1.h to os/ 2026-01-19 12:32:20 -08:00
xstrans.c Clean up a couple of warnings in os/ 2013-10-31 16:58:12 -07:00