sync with OpenBSD -current

This commit is contained in:
purplerain 2025-01-10 01:40:29 +00:00
parent 4b49aefbb1
commit 1fd36b57f8
Signed by: purplerain
GPG key ID: F42C07F07E2E35B7
945 changed files with 81965 additions and 59988 deletions

View file

@ -1,3 +1,491 @@
commit b5f1b211b4bbbf4049b422b0e08e02efaaf7a26a
Author: Matt Turner <mattst88@gmail.com>
Date: Tue Dec 17 12:39:36 2024 -0500
xserver 21.1.15
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1753>
commit 203e0667d21953737537d1991ec76b768fe588ae
Author: Matt Turner <mattst88@gmail.com>
Date: Mon Dec 16 22:38:24 2024 -0500
hw/xfree86: Fix -Wincompatible-pointer-types sbus compile failure
```
../hw/xfree86/common/xf86sbusBus.c: In function xf86SbusConfigureNewDev:
../hw/xfree86/common/xf86sbusBus.c:751:21: error: passing argument 1 of XNFasprintf from incompatible pointer type [-Wincompatible-pointer-types]
751 | XNFasprintf(&GDev->busID, "SBUS:%s", promPath);
| ^~~~~~~~~~~~
| |
| const char **
```
Apply the same fix as in commit e1e01d2e3 ("xfree86/common: Warning
fixes. Mostly const string handling.")
(cherry picked from commit bdacb100bf6a551bc9045f7f0048cbb99eb3db5a)
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1752>
commit 1958e0f25b6b46940625b407a5e15b39fa648b26
Author: Matt Turner <mattst88@gmail.com>
Date: Mon Dec 16 22:38:03 2024 -0500
hw/xfree86: Fix -Wmissing-prototypes warnings
None of these functions are used elsewhere in the Xserver nor in any of
the xf86-video-sun* DDXs.
(cherry picked from commit 00a96cd82a7be08f421dcbe3aa628fdbc7c8d856)
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1752>
commit c3144adcbc01d4f9f4d1e42323fc51be689bee17
Author: Eric Curtin <ecurtin@redhat.com>
Date: Fri Dec 16 11:10:12 2022 +0000
config: add a quirk for Apple Silicon appledrm
Xorg server does not correctly select the DCP for the display without a
quirk on Apple Silicon.
Signed-off-by: Eric Curtin <ecurtin@redhat.com>
Suggested-by: Hector Martin <marcan@marcan.st>
(cherry picked from commit 39934a656a44722d16a80bf4db411c53e2d67b38)
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1746>
commit 1a836cd47be8177cb3ab3ac2bc90e926c24c0cac
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Wed Oct 30 10:34:14 2024 -0700
dix-config.h: add HAVE_SOCKLEN_T definition
Needed to build with IPv6 disabled using gcc 14 on some platforms to avoid:
In file included from /usr/X11/include/X11/Xtrans/transport.c:67,
from xstrans.c:17:
/usr/X11/include/X11/Xtrans/Xtranssock.c: In function _XSERVTransSocketOpen:
/usr/X11/include/X11/Xtrans/Xtranssock.c:467:28: error: passing argument 5
of getsockopt from incompatible pointer type [-Wincompatible-pointer-types]
467 | (char *) &val, &len) == 0 && val < 64 * 1024)
| ^~~~
| |
| size_t * {aka long unsigned int *}
(Backport to xserver-21.1-branch of commit a1b5aa5a7f12adc43720a5ae11e6c.
Backport adds autoconf equivalent to meson change from master branch.)
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1737>
commit 18c9cd6ab799cf8bd7fb90b4965455bece0046c3
Author: Joaquim Monteiro <joaquim.monteiro@protonmail.com>
Date: Sun Jun 23 21:23:47 2024 +0100
os: Fix siHostnameAddrMatch in the case where h_addr isn't defined
When IPv6 support isn't enabled, and h_addr isn't defined,
there is no for loop, so the break statement is invalid.
Signed-off-by: Joaquim Monteiro <joaquim.monteiro@protonmail.com>
(cherry picked from commit a6a993f9508ff0bd6f19695b2dfaef170c652525)
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1737>
commit e8302b707d6fddf8e27daa0b3ef70fd3efec823c
Author: Joaquim Monteiro <joaquim.monteiro@protonmail.com>
Date: Sun Jun 23 21:17:25 2024 +0100
os: Fix assignment with incompatible pointer type
struct hostent->h_addr_list is of type char**, not const char**.
GCC considers this an error when in C99 mode or later.
Signed-off-by: Joaquim Monteiro <joaquim.monteiro@protonmail.com>
(cherry picked from commit 0ddcd8785199c08d9bded3c767a3b1227c670999)
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1737>
commit b25ad9b8f0ebcc3ebe09ce9991410c60f3a8b2ce
Author: José Expósito <jexposit@redhat.com>
Date: Tue Oct 29 14:40:34 2024 +0100
xserver 21.1.14
Signed-off-by: José Expósito <jexposit@redhat.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1734>
commit ba1d14f8eff2a123bd7ff4d48c02e1d5131358e0
Author: Matthieu Herrb <matthieu@herrb.eu>
Date: Thu Oct 10 10:37:28 2024 +0200
xkb: Fix buffer overflow in _XkbSetCompatMap()
The _XkbSetCompatMap() function attempts to resize the `sym_interpret`
buffer.
However, It didn't update its size properly. It updated `num_si` only,
without updating `size_si`.
This may lead to local privilege escalation if the server is run as root
or remote code execution (e.g. x11 over ssh).
CVE-2024-9632, ZDI-CAN-24756
This vulnerability was discovered by:
Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Tested-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: José Expósito <jexposit@redhat.com>
(cherry picked from commit 85b776571487f52e756f68a069c768757369bfe3)
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1734>
commit e3e14369c62a3647b8f125d9dcb7072f370c10f1
Author: Matthieu Herrb <matthieu@herrb.eu>
Date: Sat Oct 14 19:06:22 2023 +0200
Fix a double-free on syntax error without a new line.
$ echo "#foo\nfoo" > custom_config $ X -config custom_config
will trigger the double free because the contents of xf86_lex_val.str
have been realloc()ed aready when free is called in read.c:209.
This copies the lex token and adds all the necessary free() calls to
avoid leaking it
(cherry picked from commit fbc034e847a3862a0a28e5872135a3c502da6518)
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1719>
commit 4adb5d589f4bb90bf0ff9f1c88096ce60c41286c
Author: Matthieu Herrb <matthieu@herrb.eu>
Date: Sat Feb 17 16:47:38 2024 +0100
Return NULL in *cmdname if the client argv or argv[0] is NULL
(cherry picked from commit 59f5445a7ff3ee1468d86f03943c976c790c0893)
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1719>
commit 5f9cac4c34e6212e3e4fc22ff4c182d6013eeafc
Author: Matthieu Herrb <matthieu@herrb.eu>
Date: Fri Nov 11 14:58:02 2022 +0100
Don't crash if the client argv or argv[0] is NULL.
Report from bauerm at pestilenz dot org.
(cherry picked from commit a8512146ba9f475a384a35337f51c7730ba7b4ce)
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1719>
commit 9d310679476abb150b8b9055ad44132ffbfa0e3b
Author: Enrico Weigelt, metux IT consult <info@metux.net>
Date: Thu Feb 15 16:15:02 2024 +0100
Xnest: fix broken exposure events
Xnest fails to properly pass through expose events: the coordinates are
miscalculated in xnestCollectExposures(), before miSendExposures() is called.
Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1735
Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/132
Fixes: 605e6764df - Fix Motif menu drawing in Xnest
Backport-Of: https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1397
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1651>
commit 00d0eba826bbf4b35becbd3fab1ee10e8b3bb89d
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sun Sep 8 13:27:45 2024 -0700
dix: FindBestPixel: fix implicit fallthrough warning
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
(cherry picked from commit 9c9e1afeb277030380daa9b22f88b05e1af783a0)
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1717>
commit 52813e32f26c16b8210dbf5e4e2be7b8a4406360
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sun Sep 8 13:21:14 2024 -0700
dix: GetPairedDevice: check if GetMaster returned NULL
Clears warning from gcc 14.1:
../dix/devices.c: In function GetPairedDevice:
../dix/devices.c:2734:15: warning: dereference of NULL dev
[CWE-476] [-Wanalyzer-null-dereference]
2734 | return dev->spriteInfo? dev->spriteInfo->paired: NULL;
| ~~~^~~~~~~~~~~~
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
(cherry picked from commit e6fc0861d8016ab31536329acac6d6de4bc64164)
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1717>
commit 65644c32b8062dd73b10e5f9092dfb833f469719
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sun Sep 8 11:59:07 2024 -0700
dix: HashResourceID: use unsigned integers for bit shifting
Clears warning from gcc 14.1:
../dix/resource.c: In function HashResourceID:
../dix/resource.c:691:44: warning: left shift of negative value
[-Wshift-negative-value]
691 | return (id ^ (id >> numBits)) & ~((~0) << numBits);
| ^~
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
(cherry picked from commit 26a7ab09eae24fda6cbf51e03f974c7572e80e69)
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1717>
commit f12dd2436f2b70dc2fb8e29bee9dfaf907764ca0
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sun Sep 8 11:15:03 2024 -0700
dix: ProcListProperties: skip unneeded work if numProps is 0
No real harm, but clears warning from gcc 14.1:
../dix/property.c: In function ProcListProperties:
..//dix/property.c:605:27: warning: dereference of NULL temppAtoms
[CWE-476] [-Wanalyzer-null-dereference]
605 | *temppAtoms++ = pProp->propertyName;
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
(cherry picked from commit 39f337fd497d6fd95efaae9ff5a62d60b49e16aa)
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1717>
commit 83a9950d7a8e365d13acaa1c38136d1b9068f4be
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sun Sep 8 11:03:41 2024 -0700
dix: dixChangeWindowProperty: don't call memcpy if malloc failed
It shouldn't matter, since it would have a length of 0, but it
clears warnings from gcc 14.1:
../dix/property.c: In function dixChangeWindowProperty:
../dix/property.c:287:9: warning: use of possibly-NULL data where
non-null expected [CWE-690] [-Wanalyzer-possible-null-argument]
287 | memcpy(data, value, totalSize);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../dix/property.c:324:13: warning: use of possibly-NULL data where
non-null expected [CWE-690] [-Wanalyzer-possible-null-argument]
324 | memcpy(data, value, totalSize);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
(cherry picked from commit 10cafd0bbebfbb92c4e73088ba168ef96fcb983c)
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1717>
commit 3bca0f56fa509c57715ad9f2f1742d73f6ffee6d
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sun Sep 8 10:41:33 2024 -0700
dix: InitPredictableAccelerationScheme: avoid memory leak on failure
Clears warning from gcc 14.1:
../dix/ptrveloc.c: In function InitPredictableAccelerationScheme:
../dix/ptrveloc.c:149:9: warning: leak of <unknown>
[CWE-401] [-Wanalyzer-malloc-leak]
149 | free(vel);
| ^~~~~~~~~
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
(cherry picked from commit 462d13c2f6dc25adea1f19e6b621f97b997236af)
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1717>
commit 6cefa3a592ce433a203ddc69e0d5bd1d8a0504fd
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sun Sep 8 10:03:08 2024 -0700
dix: CreateScratchGC: avoid dereference of pointer we just set to NULL
Clears warning from gcc 14.1:
../dix/gc.c: In function CreateScratchGC:
../dix/gc.c:818:28: warning: dereference of NULL pGC
[CWE-476] [-Wanalyzer-null-dereference]
818 | pGC->graphicsExposures = FALSE;
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
(cherry picked from commit 7ee3a520184b355820923bc7a955d0834eb8afbd)
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1717>
commit abaf3c6f204a42006ce1da4fc6d8206477d302e5
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sun Sep 8 09:57:36 2024 -0700
dix: enterleave.c: fix implicit fallthrough warnings
Clears 7 -Wimplicit-fallthrough warnings from gcc 14.1
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
(cherry picked from commit 0cb826e3d0fd366914c34ab18e5917930f6695b4)
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1717>
commit 0f10584ec43eb29512ac9c4748eccc7b1d60988b
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sun Sep 8 09:45:54 2024 -0700
dix: SetFontPath: don't set errorValue on Success
Clears warning from gcc 14.1:
../dix/dixfonts.c: In function SetFontPath:
../dix/dixfonts.c:1697:28: warning: use of uninitialized value bad
[CWE-457] [-Wanalyzer-use-of-uninitialized-value]
1697 | client->errorValue = bad;
| ~~~~~~~~~~~~~~~~~~~^~~~~
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
(cherry picked from commit 1a86fba0d9ae2e107e3ed23519ab3b84d2e5240e)
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1717>
commit f9a5bc6532f76758f7a7fd44047731541ebd23d5
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sun Sep 8 09:28:19 2024 -0700
dix: PolyText: fully initialize local_closure
Clears warning from gcc 14.1:
../dix/dixfonts.c:1352:15: warning: use of uninitialized value *c.data
[CWE-457] [-Wanalyzer-use-of-uninitialized-value]
1352 | free(c->data);
| ~^~~~~~
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
(cherry picked from commit d78836a3a6b827a282957c48898f9ba4cb0dbcf5)
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1717>
commit 02e6639547361578e856a079814caef08db5260f
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Sun Sep 8 09:17:17 2024 -0700
dix: check for calloc() failure in Xi event conversion routines
Clears up 12 -Wanalyzer-possible-null-dereference warnings from gcc 14.1
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
(cherry picked from commit 25762834c9a5da3a7c672d89a7da73297252d905)
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1717>
commit 111dc7058891bd01b117f3984cf5ac701011e053
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Mon Jan 22 14:22:12 2024 +1000
dix: fix valuator copy/paste error in the DeviceStateNotify event
Fixes 219c54b8a3337456ce5270ded6a67bcde53553d5
(cherry picked from commit 133e0d651c5d12bf01999d6289e84e224ba77adc)
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1717>
commit 408432fbd0f51d2404bfcfc60f20de8bac1f6178
Author: Konstantin <ria.freelander@gmail.com>
Date: Sun Jun 26 00:01:54 2022 +0300
glamor: make use of GL_EXT_texture_format_BGRA8888
For 24 and 32 bit depth pictures xserver uses PICT_x8r8g8b8 and PICT_a8r8g8b8 formats,
which must be backed with GL_BGRA format. It is present in OpenGL ES 2.0 only with
GL_EXT_texture_format_BGRA8888 extension. We require such extension in glamor_init,
so, why not to make use of it?
Fixes #1208
Fixes #1354
Signed-off-by: Konstantin Pugin <ria.freelander@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
(cherry picked from commit 24cd5f34f8edcc6621ed9c0f2b1a3df08de7488d)
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1546>
commit 03bbf4b1214b4e9aad153a5969c32264234fe4da
Author: Alexey <fatton2011@yandex.ru>
Date: Fri Jun 24 15:12:54 2022 +0000
Fixed mirrored glyphs on big-endian machines
(cherry picked from commit 4cf89222701d73d46c098be9fcc8d9eb6d96f885)
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1605>
commit b08cb8141b544788d8607fa31e69c089acdb4fa4
Author: Enrico Weigelt, metux IT consult <info@metux.net>
Date: Wed Jul 31 15:11:27 2024 +0200
Xnest: cursor: fix potentially uninitialized memory
It's safer to zero-out the cursor-private memory on allocation,
instead of relying on being cleared initialized somewhere later.
Fixes: 3f3ff971ec - Replace X-allocation functions with their C89 counterparts
Backport-Of: https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1652
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1653>
commit 68129d7369f30e1448f587598d3e2c015329ae38
Author: Olivier Fourdan <ofourdan@redhat.com>
Date: Tue Jul 23 17:11:55 2024 +0200
build: Drop libxcvt requirement from SDK_REQUIRED_MODULES
The SDK doed not need libxcvt, only Xorg and Xwayland do.
Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1721
Fixes: a4ab57cb7 - build: Add dependency on libxcvt
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1618>
commit 8407181c7dfe14086d99697af0b86120320ab73e
Author: José Expósito <jexposit@redhat.com>
Date: Fri Jan 19 13:05:51 2024 +0100
ephyr: Fix incompatible pointer type build error
Fix a compilation error on 32 bits architectures with gcc 14:
ephyr_glamor_xv.c: In function ephyr_glamor_xv_init:
ephyr_glamor_xv.c:154:31: error: assignment to SetPortAttributeFuncPtr {aka int (*)(struct _KdScreenInfo *, long unsigned int, int, void *)} from incompatible pointer type int (*)(KdScreenInfo *, Atom, INT32, void *) {aka int (*)(struct _KdScreenInfo *, long unsigned int, long int, void *)} [-Wincompatible-pointer-types]
154 | adaptor->SetPortAttribute = ephyr_glamor_xv_set_port_attribute;
| ^
ephyr_glamor_xv.c:155:31: error: assignment to GetPortAttributeFuncPtr {aka int (*)(struct _KdScreenInfo *, long unsigned int, int *, void *)} from incompatible pointer type int (*)(KdScreenInfo *, Atom, INT32 *, void *) {aka int (*)(struct _KdScreenInfo *, long unsigned int, long int *, void *)} [-Wincompatible-pointer-types]
155 | adaptor->GetPortAttribute = ephyr_glamor_xv_get_port_attribute;
| ^
Build error logs:
https://koji.fedoraproject.org/koji/taskinfo?taskID=111964273
Signed-off-by: José Expósito <jexposit@redhat.com>
(cherry picked from commit e89edec497bac581ca9b614fb00c25365580f045)
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1532>
commit be2767845d6ed3c6dbd25a151051294d0908a995
Author: Matt Turner <mattst88@gmail.com>
Date: Fri Apr 12 13:09:23 2024 -0400

102
xserver/aclocal.m4 vendored
View file

@ -19,7 +19,7 @@ You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
# pkg.m4 - Macros to locate and use pkg-config. -*- Autoconf -*-
# serial 12 (pkg-config-0.29.2)
dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
@ -107,7 +107,7 @@ dnl Check to see whether a particular set of modules exists. Similar to
dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
dnl
dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
dnl only at the first occurence in configure.ac, so if the first place
dnl only at the first occurrence in configure.ac, so if the first place
dnl it's called might be skipped (such as if it is within an "if", you
dnl have to call PKG_CHECK_EXISTS manually
AC_DEFUN([PKG_CHECK_EXISTS],
@ -176,14 +176,14 @@ if test $pkg_failed = yes; then
AC_MSG_RESULT([no])
_PKG_SHORT_ERRORS_SUPPORTED
if test $_pkg_short_errors_supported = yes; then
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
else
$1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
$1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
# Put the nasty error message in config.log where it belongs
echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
m4_default([$4], [AC_MSG_ERROR(
m4_default([$4], [AC_MSG_ERROR(
[Package requirements ($2) were not met:
$$1_PKG_ERRORS
@ -195,7 +195,7 @@ _PKG_TEXT])[]dnl
])
elif test $pkg_failed = untried; then
AC_MSG_RESULT([no])
m4_default([$4], [AC_MSG_FAILURE(
m4_default([$4], [AC_MSG_FAILURE(
[The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@ -205,10 +205,10 @@ _PKG_TEXT
To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
])
else
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
AC_MSG_RESULT([yes])
$3
$3
fi[]dnl
])dnl PKG_CHECK_MODULES
@ -295,6 +295,74 @@ AS_VAR_COPY([$1], [pkg_cv_][$1])
AS_VAR_IF([$1], [""], [$5], [$4])dnl
])dnl PKG_CHECK_VAR
dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES,
dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND],
dnl [DESCRIPTION], [DEFAULT])
dnl ------------------------------------------
dnl
dnl Prepare a "--with-" configure option using the lowercase
dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and
dnl PKG_CHECK_MODULES in a single macro.
AC_DEFUN([PKG_WITH_MODULES],
[
m4_pushdef([with_arg], m4_tolower([$1]))
m4_pushdef([description],
[m4_default([$5], [build with ]with_arg[ support])])
m4_pushdef([def_arg], [m4_default([$6], [auto])])
m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes])
m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no])
m4_case(def_arg,
[yes],[m4_pushdef([with_without], [--without-]with_arg)],
[m4_pushdef([with_without],[--with-]with_arg)])
AC_ARG_WITH(with_arg,
AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),,
[AS_TR_SH([with_]with_arg)=def_arg])
AS_CASE([$AS_TR_SH([with_]with_arg)],
[yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)],
[auto],[PKG_CHECK_MODULES([$1],[$2],
[m4_n([def_action_if_found]) $3],
[m4_n([def_action_if_not_found]) $4])])
m4_popdef([with_arg])
m4_popdef([description])
m4_popdef([def_arg])
])dnl PKG_WITH_MODULES
dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
dnl [DESCRIPTION], [DEFAULT])
dnl -----------------------------------------------
dnl
dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES
dnl check._[VARIABLE-PREFIX] is exported as make variable.
AC_DEFUN([PKG_HAVE_WITH_MODULES],
[
PKG_WITH_MODULES([$1],[$2],,,[$3],[$4])
AM_CONDITIONAL([HAVE_][$1],
[test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"])
])dnl PKG_HAVE_WITH_MODULES
dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
dnl [DESCRIPTION], [DEFAULT])
dnl ------------------------------------------------------
dnl
dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after
dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make
dnl and preprocessor variable.
AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES],
[
PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4])
AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"],
[AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])])
])dnl PKG_HAVE_DEFINE_WITH_MODULES
# Copyright (C) 2002-2012 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
@ -1345,9 +1413,9 @@ m4_include([m4/ltversion.m4])
m4_include([m4/lt~obsolete.m4])
dnl fontutil.m4. Generated from fontutil.m4.in by configure.
dnl
dnl This file comes from X.Org's font-util 1.4.0
dnl This file comes from X.Org's font-util 1.4.1
dnl
dnl Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
dnl Copyright (c) 2009, 2023, Oracle and/or its affiliates.
dnl
dnl Permission is hereby granted, free of charge, to any person obtaining a
dnl copy of this software and associated documentation files (the "Software"),
@ -1410,7 +1478,7 @@ dnl from the copyright holders.
# See the "minimum version" comment for each macro you use to see what
# version you require.
m4_defun([XORG_FONT_MACROS_VERSION],[
m4_define([vers_have], [1.4.0])
m4_define([vers_have], [1.4.1])
m4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.])))
m4_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.])))
m4_if(m4_cmp(maj_have, maj_needed), 0,,
@ -1780,7 +1848,7 @@ dnl DEALINGS IN THE SOFTWARE.
# See the "minimum version" comment for each macro you use to see what
# version you require.
m4_defun([XORG_MACROS_VERSION],[
m4_define([vers_have], [1.20.0])
m4_define([vers_have], [1.20.1])
m4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.])))
m4_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.])))
m4_if(m4_cmp(maj_have, maj_needed), 0,,
@ -1827,10 +1895,10 @@ rm -f conftest.$ac_ext
AC_MSG_CHECKING([if $RAWCPP requires -traditional])
AC_LANG_CONFTEST([AC_LANG_SOURCE([[Does cpp preserve "whitespace"?]])])
if test `${RAWCPP} < conftest.$ac_ext | grep -c 'preserve \"'` -eq 1 ; then
if test `${RAWCPP} < conftest.$ac_ext | grep -c 'preserve "'` -eq 1 ; then
AC_MSG_RESULT([no])
else
if test `${RAWCPP} -traditional < conftest.$ac_ext | grep -c 'preserve \"'` -eq 1 ; then
if test `${RAWCPP} -traditional < conftest.$ac_ext | grep -c 'preserve "'` -eq 1 ; then
TRADITIONALCPPFLAGS="-traditional"
RAWCPPFLAGS="${RAWCPPFLAGS} -traditional"
AC_MSG_RESULT([yes])

View file

@ -36,3 +36,13 @@ Section "InputClass"
MatchDriver "evdev"
Option "TypeName" "MOUSE"
EndSection
# https://bugzilla.redhat.com/show_bug.cgi?id=2152414
# Xorg server does not correctly select the DCP for the display without
# a quirk on Apple Silicon
Section "OutputClass"
Identifier "appledrm"
MatchDriver "apple"
Driver "modesetting"
Option "PrimaryGPU" "true"
EndSection

624
xserver/configure vendored

File diff suppressed because it is too large Load diff

View file

@ -26,8 +26,8 @@ dnl
dnl Process this file with autoconf to create configure.
AC_PREREQ(2.60)
AC_INIT([xorg-server], 21.1.13, [https://gitlab.freedesktop.org/xorg/xserver/issues], xorg-server)
RELEASE_DATE="2024-04-12"
AC_INIT([xorg-server], 21.1.15, [https://gitlab.freedesktop.org/xorg/xserver/issues], xorg-server)
RELEASE_DATE="2024-12-17"
RELEASE_NAME="Caramel Ice Cream"
AC_CONFIG_SRCDIR([Makefile.am])
AC_CONFIG_MACRO_DIR([m4])
@ -807,7 +807,7 @@ PKG_CHECK_MODULES(PIXMAN, $LIBPIXMAN)
REQUIRED_LIBS="$REQUIRED_LIBS $LIBPIXMAN $LIBXFONT xau"
dnl Core modules for most extensions, et al.
SDK_REQUIRED_MODULES="$XPROTO $RANDRPROTO $RENDERPROTO $XEXTPROTO $INPUTPROTO $KBPROTO $FONTSPROTO $LIBPIXMAN $LIBXCVT"
SDK_REQUIRED_MODULES="$XPROTO $RANDRPROTO $RENDERPROTO $XEXTPROTO $INPUTPROTO $KBPROTO $FONTSPROTO $LIBPIXMAN"
# Make SDK_REQUIRED_MODULES available for inclusion in xorg-server.pc
AC_SUBST(SDK_REQUIRED_MODULES)

View file

@ -1250,6 +1250,7 @@ FindBestPixel(EntryPtr pentFirst, int size, xrgb * prgb, int channel)
case PSEUDOMAP:
dg = (long) pent->co.local.green - prgb->green;
db = (long) pent->co.local.blue - prgb->blue;
/* fallthrough */
case REDMAP:
dr = (long) pent->co.local.red - prgb->red;
break;

View file

@ -2714,7 +2714,7 @@ GetPairedDevice(DeviceIntPtr dev)
if (!IsMaster(dev) && !IsFloating(dev))
dev = GetMaster(dev, MASTER_ATTACHED);
return dev->spriteInfo? dev->spriteInfo->paired: NULL;
return (dev && dev->spriteInfo) ? dev->spriteInfo->paired: NULL;
}
/**

View file

@ -1352,18 +1352,18 @@ int
PolyText(ClientPtr client, DrawablePtr pDraw, GC * pGC, unsigned char *pElt,
unsigned char *endReq, int xorg, int yorg, int reqType, XID did)
{
PTclosureRec local_closure;
local_closure.pElt = pElt;
local_closure.endReq = endReq;
local_closure.client = client;
local_closure.pDraw = pDraw;
local_closure.xorg = xorg;
local_closure.yorg = yorg;
local_closure.reqType = reqType;
local_closure.pGC = pGC;
local_closure.did = did;
local_closure.err = Success;
PTclosureRec local_closure = {
.client = client,
.pDraw = pDraw,
.pGC = pGC,
.pElt = pElt,
.endReq = endReq,
.xorg = xorg,
.yorg = yorg,
.reqType = reqType,
.did = did,
.err = Success
};
(void) doPolyText(client, &local_closure);
return Success;
@ -1687,7 +1687,8 @@ SetFontPath(ClientPtr client, int npaths, unsigned char *paths)
int bad;
err = SetFontPathElements(npaths, paths, &bad, FALSE);
client->errorValue = bad;
if (err != Success)
client->errorValue = bad;
}
return err;
}

View file

@ -619,15 +619,20 @@ FixDeviceValuator(DeviceIntPtr dev, deviceValuator * ev, ValuatorClassPtr v,
ev->first_valuator = first;
switch (ev->num_valuators) {
case 6:
ev->valuator2 = v->axisVal[first + 5];
ev->valuator5 = v->axisVal[first + 5];
/* fallthrough */
case 5:
ev->valuator2 = v->axisVal[first + 4];
ev->valuator4 = v->axisVal[first + 4];
/* fallthrough */
case 4:
ev->valuator2 = v->axisVal[first + 3];
ev->valuator3 = v->axisVal[first + 3];
/* fallthrough */
case 3:
ev->valuator2 = v->axisVal[first + 2];
/* fallthrough */
case 2:
ev->valuator1 = v->axisVal[first + 1];
/* fallthrough */
case 1:
ev->valuator0 = v->axisVal[first];
break;
@ -666,8 +671,10 @@ FixDeviceStateNotify(DeviceIntPtr dev, deviceStateNotify * ev, KeyClassPtr k,
switch (ev->num_valuators) {
case 3:
ev->valuator2 = v->axisVal[first + 2];
/* fallthrough */
case 2:
ev->valuator1 = v->axisVal[first + 1];
/* fallthrough */
case 1:
ev->valuator0 = v->axisVal[first];
break;

View file

@ -683,6 +683,8 @@ eventToDeviceEvent(DeviceEvent *ev, xEvent **xi)
len += vallen * 4; /* valuators mask */
*xi = calloc(1, len);
if (*xi == NULL)
return BadAlloc;
xde = (xXIDeviceEvent *) * xi;
xde->type = GenericEvent;
xde->extension = IReqCode;
@ -751,6 +753,8 @@ eventToTouchOwnershipEvent(TouchOwnershipEvent *ev, xEvent **xi)
xXITouchOwnershipEvent *xtoe;
*xi = calloc(1, len);
if (*xi == NULL)
return BadAlloc;
xtoe = (xXITouchOwnershipEvent *) * xi;
xtoe->type = GenericEvent;
xtoe->extension = IReqCode;
@ -781,6 +785,8 @@ eventToRawEvent(RawDeviceEvent *ev, xEvent **xi)
len += vallen * 4; /* valuators mask */
*xi = calloc(1, len);
if (*xi == NULL)
return BadAlloc;
raw = (xXIRawEvent *) * xi;
raw->type = GenericEvent;
raw->extension = IReqCode;
@ -816,6 +822,8 @@ eventToBarrierEvent(BarrierEvent *ev, xEvent **xi)
int len = sizeof(xXIBarrierEvent);
*xi = calloc(1, len);
if (*xi == NULL)
return BadAlloc;
barrier = (xXIBarrierEvent*) *xi;
barrier->type = GenericEvent;
barrier->extension = IReqCode;
@ -845,6 +853,8 @@ eventToGesturePinchEvent(GestureEvent *ev, xEvent **xi)
xXIGesturePinchEvent *xpe;
*xi = calloc(1, len);
if (*xi == NULL)
return BadAlloc;
xpe = (xXIGesturePinchEvent *) * xi;
xpe->type = GenericEvent;
xpe->extension = IReqCode;
@ -887,6 +897,8 @@ eventToGestureSwipeEvent(GestureEvent *ev, xEvent **xi)
xXIGestureSwipeEvent *xde;
*xi = calloc(1, len);
if (*xi == NULL)
return BadAlloc;
xde = (xXIGestureSwipeEvent *) * xi;
xde->type = GenericEvent;
xde->extension = IReqCode;

View file

@ -811,7 +811,8 @@ CreateScratchGC(ScreenPtr pScreen, unsigned depth)
FreeGC(pGC, (XID) 0);
pGC = (GCPtr) NULL;
}
pGC->graphicsExposures = FALSE;
else
pGC->graphicsExposures = FALSE;
return pGC;
}

View file

@ -276,11 +276,13 @@ dixChangeWindowProperty(ClientPtr pClient, WindowPtr pWin, Atom property,
if (!pProp)
return BadAlloc;
data = malloc(totalSize);
if (!data && len) {
dixFreeObjectWithPrivates(pProp, PRIVATE_PROPERTY);
return BadAlloc;
if (totalSize) {
if (!data) {
dixFreeObjectWithPrivates(pProp, PRIVATE_PROPERTY);
return BadAlloc;
}
memcpy(data, value, totalSize);
}
memcpy(data, value, totalSize);
pProp->propertyName = property;
pProp->type = type;
pProp->format = format;
@ -313,9 +315,11 @@ dixChangeWindowProperty(ClientPtr pClient, WindowPtr pWin, Atom property,
if (mode == PropModeReplace) {
data = malloc(totalSize);
if (!data && len)
return BadAlloc;
memcpy(data, value, totalSize);
if (totalSize) {
if (!data)
return BadAlloc;
memcpy(data, value, totalSize);
}
pProp->data = data;
pProp->size = len;
pProp->type = type;
@ -585,17 +589,20 @@ ProcListProperties(ClientPtr client)
for (pProp = wUserProps(pWin); pProp; pProp = pProp->next)
numProps++;
if (numProps && !(pAtoms = xallocarray(numProps, sizeof(Atom))))
return BadAlloc;
if (numProps) {
pAtoms = xallocarray(numProps, sizeof(Atom));
if (!pAtoms)
return BadAlloc;
numProps = 0;
temppAtoms = pAtoms;
for (pProp = wUserProps(pWin); pProp; pProp = pProp->next) {
realProp = pProp;
rc = XaceHookPropertyAccess(client, pWin, &realProp, DixGetAttrAccess);
if (rc == Success && realProp == pProp) {
*temppAtoms++ = pProp->propertyName;
numProps++;
numProps = 0;
temppAtoms = pAtoms;
for (pProp = wUserProps(pWin); pProp; pProp = pProp->next) {
realProp = pProp;
rc = XaceHookPropertyAccess(client, pWin, &realProp, DixGetAttrAccess);
if (rc == Success && realProp == pProp) {
*temppAtoms++ = pProp->propertyName;
numProps++;
}
}
}
@ -609,8 +616,8 @@ ProcListProperties(ClientPtr client)
if (numProps) {
client->pSwapReplyFunc = (ReplySwapPtr) Swap32Write;
WriteSwappedDataToClient(client, numProps * sizeof(Atom), pAtoms);
free(pAtoms);
}
free(pAtoms);
return Success;
}

View file

@ -143,6 +143,7 @@ InitPredictableAccelerationScheme(DeviceIntPtr dev,
schemeData->vel = vel;
scheme.accelData = schemeData;
if (!InitializePredictableAccelerationProperties(dev, vel, schemeData)) {
FreeVelocityData(vel);
free(vel);
free(schemeData);
return FALSE;

View file

@ -683,7 +683,7 @@ HashResourceID(XID id, unsigned int numBits)
id &= mask;
if (numBits < 9)
return (id ^ (id >> numBits) ^ (id >> (numBits<<1))) & ~((~0U) << numBits);
return (id ^ (id >> numBits)) & ~((~0) << numBits);
return (id ^ (id >> numBits)) & ~((~0U) << numBits);
}
static XID

View file

@ -586,10 +586,10 @@ glamor_setup_formats(ScreenPtr screen)
if (glamor_priv->is_gles) {
assert(X_BYTE_ORDER == X_LITTLE_ENDIAN);
glamor_add_format(screen, 24, PICT_x8b8g8r8,
GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE, TRUE);
glamor_add_format(screen, 32, PICT_a8b8g8r8,
GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE, TRUE);
glamor_add_format(screen, 24, PICT_x8r8g8b8,
GL_BGRA, GL_BGRA, GL_UNSIGNED_BYTE, TRUE);
glamor_add_format(screen, 32, PICT_a8r8g8b8,
GL_BGRA, GL_BGRA, GL_UNSIGNED_BYTE, TRUE);
} else {
glamor_add_format(screen, 24, PICT_x8r8g8b8,
GL_RGBA, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, TRUE);

View file

@ -101,7 +101,11 @@ glamor_poly_glyph_blt_gl(DrawablePtr drawable, GCPtr gc,
int pt_x_i = glyph_x + xx;
int pt_y_i = glyph_y + yy;
#if BITMAP_BIT_ORDER == MSBFirst
if (!(*glyph & (128 >> (xx & 7))))
#else
if (!(*glyph & (1 << (xx & 7))))
#endif
continue;
if (!RegionContainsPoint(clip, pt_x_i, pt_y_i, NULL))
@ -208,7 +212,11 @@ glamor_push_pixels_gl(GCPtr gc, PixmapPtr bitmap,
for (yy = 0; yy < h; yy++) {
uint8_t *bitmap_row = bitmap_data + yy * bitmap_stride;
for (xx = 0; xx < w; xx++) {
#if BITMAP_BIT_ORDER == MSBFirst
if (bitmap_row[xx / 8] & (128 >> xx % 8) &&
#else
if (bitmap_row[xx / 8] & (1 << xx % 8) &&
#endif
RegionContainsPoint(clip,
x + xx,
y + yy,

View file

@ -94,7 +94,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
*tex_format = GL_BGRA;
*tex_type = GL_UNSIGNED_INT_8_8_8_8;
} else {
*tex_format = GL_RGBA;
*tex_format = GL_BGRA;
*tex_type = GL_UNSIGNED_BYTE;
swizzle[0] = GL_GREEN;
@ -113,12 +113,9 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
*tex_format = GL_BGRA;
*tex_type = GL_UNSIGNED_INT_8_8_8_8_REV;
} else {
*tex_format = GL_RGBA;
*tex_format = GL_BGRA;
*tex_type = GL_UNSIGNED_BYTE;
swizzle[0] = GL_BLUE;
swizzle[2] = GL_RED;
if (!is_little_endian)
byte_swap_swizzle(swizzle);
break;

View file

@ -235,7 +235,11 @@ static const char fs_vars_text[] =
static const char fs_exec_text[] =
" ivec2 itile_texture = ivec2(glyph_pos);\n"
#if BITMAP_BIT_ORDER == MSBFirst
" uint x = uint(7) - uint(itile_texture.x & 7);\n"
#else
" uint x = uint(itile_texture.x & 7);\n"
#endif
" itile_texture.x >>= 3;\n"
" uint texel = texelFetch(font, itile_texture, 0).x;\n"
" uint bit = (texel >> x) & uint(1);\n"
@ -244,7 +248,11 @@ static const char fs_exec_text[] =
static const char fs_exec_te[] =
" ivec2 itile_texture = ivec2(glyph_pos);\n"
#if BITMAP_BIT_ORDER == MSBFirst
" uint x = uint(7) - uint(itile_texture.x & 7);\n"
#else
" uint x = uint(itile_texture.x & 7);\n"
#endif
" itile_texture.x >>= 3;\n"
" uint texel = texelFetch(font, itile_texture, 0).x;\n"
" uint bit = (texel >> x) & uint(1);\n"

View file

@ -50,16 +50,16 @@ ephyr_glamor_xv_stop_video(KdScreenInfo *screen, void *data, Bool cleanup)
static int
ephyr_glamor_xv_set_port_attribute(KdScreenInfo *screen,
Atom attribute, INT32 value, void *data)
Atom attribute, int value, void *data)
{
return glamor_xv_set_port_attribute(data, attribute, value);
return glamor_xv_set_port_attribute(data, attribute, (INT32)value);
}
static int
ephyr_glamor_xv_get_port_attribute(KdScreenInfo *screen,
Atom attribute, INT32 *value, void *data)
Atom attribute, int *value, void *data)
{
return glamor_xv_get_port_attribute(data, attribute, value);
return glamor_xv_get_port_attribute(data, attribute, (INT32 *)value);
}
static void

View file

@ -244,7 +244,7 @@ xf86SbusProbe(void)
* in the correct format for a SBUS bus id.
*/
Bool
static Bool
xf86ParseSbusBusString(const char *busID, int *fbNum)
{
/*
@ -316,7 +316,7 @@ xf86ParseSbusBusString(const char *busID, int *fbNum)
* Compare a BUS ID string with a SBUS bus id. Return TRUE if they match.
*/
Bool
static Bool
xf86CompareSbusBusString(const char *busID, int fbNum)
{
int iFbNum;
@ -333,7 +333,7 @@ xf86CompareSbusBusString(const char *busID, int fbNum)
* Check if the slot requested is free. If it is already in use, return FALSE.
*/
Bool
static Bool
xf86CheckSbusSlot(int fbNum)
{
int i;
@ -354,7 +354,7 @@ xf86CheckSbusSlot(int fbNum)
* Otherwise, claim the slot for the screen requesting it.
*/
int
static int
xf86ClaimSbusSlot(sbusDevicePtr psdp, DriverPtr drvp, GDevPtr dev, Bool active)
{
EntityPtr p = NULL;
@ -740,6 +740,7 @@ void
xf86SbusConfigureNewDev(void *busData, sbusDevicePtr sBus, GDevRec * GDev)
{
char *promPath = NULL;
char *tmp;
sBus = (sbusDevicePtr) busData;
GDev->identifier = sBus->descr;
@ -748,10 +749,11 @@ xf86SbusConfigureNewDev(void *busData, sbusDevicePtr sBus, GDevRec * GDev)
sparcPromClose();
}
if (promPath) {
XNFasprintf(&GDev->busID, "SBUS:%s", promPath);
XNFasprintf(&tmp, "SBUS:%s", promPath);
free(promPath);
}
else {
XNFasprintf(&GDev->busID, "SBUS:fb%d", sBus->fbNum);
XNFasprintf(&tmp, "SBUS:fb%d", sBus->fbNum);
}
GDev->busID = tmp;
}

View file

@ -1135,8 +1135,10 @@ handle_detailed_monset(struct detailed_monitor_section *det_mon, void *data)
p->Monitor->nHsync++;
}
else {
#ifdef SPAM_XORG_LOG
xf86DrvMsg(scrnIndex, X_INFO,
"Using hsync ranges from config file\n");
#endif
}
if (!p->have_vrefresh) {
@ -1150,8 +1152,10 @@ handle_detailed_monset(struct detailed_monitor_section *det_mon, void *data)
p->Monitor->nVrefresh++;
}
else {
#ifdef SPAM_XORG_LOG
xf86DrvMsg(scrnIndex, X_INFO,
"Using vrefresh ranges from config file\n");
#endif
}
clock = det_mon->section.ranges.max_clock * 1000;
@ -1198,6 +1202,7 @@ xf86EdidMonitorSet(int scrnIndex, MonPtr Monitor, xf86MonPtr DDC)
xf86ForEachDetailedBlock(DDC, handle_detailed_monset, &p);
if (Modes) {
#ifdef SPAM_XORG_LOG
/* Print Modes */
xf86DrvMsg(scrnIndex, X_INFO, "Printing DDC gathered Modelines:\n");
@ -1206,7 +1211,7 @@ xf86EdidMonitorSet(int scrnIndex, MonPtr Monitor, xf86MonPtr DDC)
xf86PrintModeline(scrnIndex, Mode);
Mode = Mode->next;
}
#endif
/* Do we still need ranges to be filled in? */
if (!Monitor->nHsync || !Monitor->nVrefresh)
DDCGuessRangesFromModes(scrnIndex, Monitor, Modes);

View file

@ -77,6 +77,8 @@ xf86parseDRISection(void)
break;
case COMMENT:
ptr->dri_comment = xf86addComment(ptr->dri_comment, xf86_lex_val.str);
free(xf86_lex_val.str);
xf86_lex_val.str = NULL;
break;
default:
Error(INVALID_KEYWORD_MSG, xf86tokenString());

View file

@ -106,6 +106,8 @@ xf86parseDeviceSection(void)
switch (token) {
case COMMENT:
ptr->dev_comment = xf86addComment(ptr->dev_comment, xf86_lex_val.str);
free(xf86_lex_val.str);
xf86_lex_val.str = NULL;
break;
case IDENTIFIER:
if (xf86getSubToken(&(ptr->dev_comment)) != STRING)

View file

@ -67,6 +67,8 @@ xf86parseExtensionsSection(void)
case COMMENT:
ptr->extensions_comment =
xf86addComment(ptr->extensions_comment, xf86_lex_val.str);
free(xf86_lex_val.str);
xf86_lex_val.str = NULL;
break;
default:
Error(INVALID_KEYWORD_MSG, xf86tokenString());

View file

@ -89,6 +89,8 @@ xf86parseFilesSection(void)
switch (token) {
case COMMENT:
ptr->file_comment = xf86addComment(ptr->file_comment, xf86_lex_val.str);
free(xf86_lex_val.str);
xf86_lex_val.str = NULL;
break;
case FONTPATH:
if (xf86getSubToken(&(ptr->file_comment)) != STRING)

View file

@ -98,6 +98,8 @@ xf86parseFlagsSection(void)
switch (token) {
case COMMENT:
ptr->flg_comment = xf86addComment(ptr->flg_comment, xf86_lex_val.str);
free(xf86_lex_val.str);
xf86_lex_val.str = NULL;
break;
/*
* these old keywords are turned into standard generic options.
@ -436,18 +438,24 @@ xf86parseOption(XF86OptionPtr head)
if ((token = xf86getSubToken(&comment)) == STRING) {
option = xf86newOption(name, xf86_lex_val.str);
option->opt_comment = comment;
if ((token = xf86getToken(NULL)) == COMMENT)
if ((token = xf86getToken(NULL)) == COMMENT) {
option->opt_comment = xf86addComment(option->opt_comment, xf86_lex_val.str);
else
free(xf86_lex_val.str);
xf86_lex_val.str = NULL;
} else {
xf86unGetToken(token);
}
}
else {
option = xf86newOption(name, NULL);
option->opt_comment = comment;
if (token == COMMENT)
if (token == COMMENT) {
option->opt_comment = xf86addComment(option->opt_comment, xf86_lex_val.str);
else
free(xf86_lex_val.str);
xf86_lex_val.str = NULL;
} else {
xf86unGetToken(token);
}
}
old = NULL;

View file

@ -84,6 +84,8 @@ xf86parseInputSection(void)
switch (token) {
case COMMENT:
ptr->inp_comment = xf86addComment(ptr->inp_comment, xf86_lex_val.str);
free(xf86_lex_val.str);
xf86_lex_val.str = NULL;
break;
case IDENTIFIER:
if (xf86getSubToken(&(ptr->inp_comment)) != STRING)

View file

@ -191,6 +191,8 @@ xf86parseInputClassSection(void)
switch (token) {
case COMMENT:
ptr->comment = xf86addComment(ptr->comment, xf86_lex_val.str);
free(xf86_lex_val.str);
xf86_lex_val.str = NULL;
break;
case IDENTIFIER:
if (xf86getSubToken(&(ptr->comment)) != STRING)

View file

@ -101,6 +101,8 @@ xf86parseLayoutSection(void)
switch (token) {
case COMMENT:
ptr->lay_comment = xf86addComment(ptr->lay_comment, xf86_lex_val.str);
free(xf86_lex_val.str);
xf86_lex_val.str = NULL;
break;
case IDENTIFIER:
if (xf86getSubToken(&(ptr->lay_comment)) != STRING)

View file

@ -95,6 +95,8 @@ xf86parseModuleSubSection(XF86LoadPtr head, char *name)
switch (token) {
case COMMENT:
ptr->load_comment = xf86addComment(ptr->load_comment, xf86_lex_val.str);
free(xf86_lex_val.str);
xf86_lex_val.str = NULL;
break;
case OPTION:
ptr->load_opt = xf86parseOption(ptr->load_opt);
@ -126,6 +128,8 @@ xf86parseModuleSection(void)
switch (token) {
case COMMENT:
ptr->mod_comment = xf86addComment(ptr->mod_comment, xf86_lex_val.str);
free(xf86_lex_val.str);
xf86_lex_val.str = NULL;
break;
case LOAD:
if (xf86getSubToken(&(ptr->mod_comment)) != STRING)
@ -230,10 +234,13 @@ xf86addNewLoadDirective(XF86LoadPtr head, const char *name, int type,
new->ignore = 0;
new->list.next = NULL;
if ((token = xf86getToken(NULL)) == COMMENT)
if ((token = xf86getToken(NULL)) == COMMENT) {
new->load_comment = xf86addComment(new->load_comment, xf86_lex_val.str);
else
free(xf86_lex_val.str);
xf86_lex_val.str = NULL;
} else {
xf86unGetToken(token);
}
return ((XF86LoadPtr) xf86addListItem((glp) head, (glp) new));
}

View file

@ -269,6 +269,8 @@ xf86parseVerboseMode(void)
switch (token) {
case COMMENT:
ptr->ml_comment = xf86addComment(ptr->ml_comment, xf86_lex_val.str);
free(xf86_lex_val.str);
xf86_lex_val.str = NULL;
break;
case DOTCLOCK:
if ((token = xf86getSubToken(&(ptr->ml_comment))) != NUMBER)
@ -413,6 +415,8 @@ xf86parseMonitorSection(void)
switch (token) {
case COMMENT:
ptr->mon_comment = xf86addComment(ptr->mon_comment, xf86_lex_val.str);
free(xf86_lex_val.str);
xf86_lex_val.str = NULL;
break;
case IDENTIFIER:
if (xf86getSubToken(&(ptr->mon_comment)) != STRING)
@ -599,6 +603,8 @@ xf86parseModesSection(void)
switch (token) {
case COMMENT:
ptr->modes_comment = xf86addComment(ptr->modes_comment, xf86_lex_val.str);
free(xf86_lex_val.str);
xf86_lex_val.str = NULL;
break;
case IDENTIFIER:
if (xf86getSubToken(&(ptr->modes_comment)) != STRING)

View file

@ -102,6 +102,8 @@ xf86parseOutputClassSection(void)
switch (token) {
case COMMENT:
ptr->comment = xf86addComment(ptr->comment, xf86_lex_val.str);
free(xf86_lex_val.str);
xf86_lex_val.str = NULL;
break;
case IDENTIFIER:
if (xf86getSubToken(&(ptr->comment)) != STRING)

View file

@ -104,6 +104,8 @@ xf86parsePointerSection(void)
switch (token) {
case COMMENT:
ptr->inp_comment = xf86addComment(ptr->inp_comment, xf86_lex_val.str);
free(xf86_lex_val.str);
xf86_lex_val.str = NULL;
break;
case PROTOCOL:
if (xf86getSubToken(&(ptr->inp_comment)) != STRING)

View file

@ -119,6 +119,8 @@ xf86parseDisplaySubSection(void)
switch (token) {
case COMMENT:
ptr->disp_comment = xf86addComment(ptr->disp_comment, xf86_lex_val.str);
free(xf86_lex_val.str);
xf86_lex_val.str = NULL;
break;
case VIEWPORT:
if (xf86getSubToken(&(ptr->disp_comment)) != NUMBER)
@ -256,6 +258,8 @@ xf86parseScreenSection(void)
switch (token) {
case COMMENT:
ptr->scrn_comment = xf86addComment(ptr->scrn_comment, xf86_lex_val.str);
free(xf86_lex_val.str);
xf86_lex_val.str = NULL;
break;
case IDENTIFIER:
if (xf86getSubToken(&(ptr->scrn_comment)) != STRING)

View file

@ -98,6 +98,8 @@ xf86parseVendorSubSection(void)
switch (token) {
case COMMENT:
ptr->vs_comment = xf86addComment(ptr->vs_comment, xf86_lex_val.str);
free(xf86_lex_val.str);
xf86_lex_val.str = NULL;
break;
case IDENTIFIER:
if (xf86getSubToken(&(ptr->vs_comment)))
@ -151,6 +153,8 @@ xf86parseVendorSection(void)
switch (token) {
case COMMENT:
ptr->vnd_comment = xf86addComment(ptr->vnd_comment, xf86_lex_val.str);
free(xf86_lex_val.str);
xf86_lex_val.str = NULL;
break;
case IDENTIFIER:
if (xf86getSubToken(&(ptr->vnd_comment)) != STRING)

View file

@ -97,6 +97,8 @@ xf86parseVideoPortSubSection(void)
switch (token) {
case COMMENT:
ptr->vp_comment = xf86addComment(ptr->vp_comment, xf86_lex_val.str);
free(xf86_lex_val.str);
xf86_lex_val.str = NULL;
break;
case IDENTIFIER:
if (xf86getSubToken(&(ptr->vp_comment)) != STRING)
@ -154,6 +156,8 @@ xf86parseVideoAdaptorSection(void)
switch (token) {
case COMMENT:
ptr->va_comment = xf86addComment(ptr->va_comment, xf86_lex_val.str);
free(xf86_lex_val.str);
xf86_lex_val.str = NULL;
break;
case IDENTIFIER:
if (xf86getSubToken(&(ptr->va_comment)) != STRING)

View file

@ -100,6 +100,8 @@ xf86readConfigFile(void)
switch (token) {
case COMMENT:
ptr->conf_comment = xf86addComment(ptr->conf_comment, xf86_lex_val.str);
free(xf86_lex_val.str);
xf86_lex_val.str = NULL;
break;
case SECTION:
if (xf86getSubToken(&(ptr->conf_comment)) != STRING) {

View file

@ -332,10 +332,10 @@ xf86getToken(const xf86ConfigSymTabRec * tab)
}
while ((c != '\n') && (c != '\r') && (c != '\0'));
configRBuf[i] = '\0';
/* XXX no private copy.
/* XXX private copy.
* Use xf86addComment when setting a comment.
*/
xf86_lex_val.str = configRBuf;
xf86_lex_val.str = strdup(configRBuf);
return COMMENT;
}
@ -448,8 +448,11 @@ xf86getSubToken(char **comment)
for (;;) {
token = xf86getToken(NULL);
if (token == COMMENT) {
if (comment)
if (comment) {
*comment = xf86addComment(*comment, xf86_lex_val.str);
free(xf86_lex_val.str);
xf86_lex_val.str = NULL;
}
}
else
return token;
@ -464,8 +467,11 @@ xf86getSubTokenWithTab(char **comment, const xf86ConfigSymTabRec * tab)
for (;;) {
token = xf86getToken(tab);
if (token == COMMENT) {
if (comment)
if (comment) {
*comment = xf86addComment(*comment, xf86_lex_val.str);
free(xf86_lex_val.str);
xf86_lex_val.str = NULL;
}
}
else
return token;

View file

@ -98,7 +98,7 @@ xnestRealizeCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor)
bg_color.green = pCursor->backGreen;
bg_color.blue = pCursor->backBlue;
xnestSetCursorPriv(pCursor, pScreen, malloc(sizeof(xnestPrivCursor)));
xnestSetCursorPriv(pCursor, pScreen, calloc(1, sizeof(xnestPrivCursor)));
xnestCursor(pCursor, pScreen) =
XCreatePixmapCursor(xnestDisplay, source, mask, &fg_color, &bg_color,
pCursor->bits->xhot, pCursor->bits->yhot);

View file

@ -94,7 +94,7 @@ xnestCollectExposures(void)
RegionInit(&Rgn, &Box, 1);
miSendExposures(pWin, &Rgn, Box.x2, Box.y2);
miSendExposures(pWin, &Rgn, Box.x1, Box.y1);
}
}
}

View file

@ -173,6 +173,9 @@
/* Define to 1 if you have the `shmctl64' function. */
#undef HAVE_SHMCTL64
/* Define to 1 if the system has the type 'socklen_t'. */
#undef HAVE_SOCKLEN_T
/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H

View file

@ -166,6 +166,8 @@ conf_data.set('HAVE_SETITIMER', cc.has_function('setitimer') ? '1' : false)
conf_data.set('HAVE_SHMCTL64', cc.has_function('shmctl64') ? '1' : false)
conf_data.set('HAVE_SIGACTION', cc.has_function('sigaction') ? '1' : false)
conf_data.set('HAVE_SIGPROCMASK', cc.has_function('sigprocmask') ? '1' : false)
# HAVE_SOCKLEN_T is used by xtrans when IPv6 is disabled
conf_data.set('HAVE_SOCKLEN_T', cc.has_type('socklen_t', prefix: '#include <sys/socket.h>') ? '1' : false)
conf_data.set('HAVE_STRCASECMP', cc.has_function('strcasecmp') ? '1' : false)
conf_data.set('HAVE_STRCASESTR', cc.has_function('strcasestr') ? '1' : false)
conf_data.set('HAVE_STRLCAT', cc.has_function('strlcat', dependencies: libbsd_dep) ? '1' : false)

View file

@ -3,10 +3,10 @@ project('xserver', 'c',
'buildtype=debugoptimized',
'c_std=gnu99',
],
version: '21.1.13',
version: '21.1.15',
meson_version: '>= 0.47.0',
)
release_date = '2024-04-12'
release_date = '2024-12-17'
add_project_arguments('-DHAVE_DIX_CONFIG_H', language: ['c', 'objc'])
cc = meson.get_compiler('c')

View file

@ -1864,7 +1864,7 @@ siHostnameAddrMatch(int family, void *addr, int len,
char hostname[SI_HOSTNAME_MAXLEN];
int f, hostaddrlen;
void *hostaddr;
const char **addrlist;
char **addrlist;
if (siAddrLen >= sizeof(hostname))
return FALSE;
@ -1889,7 +1889,9 @@ siHostnameAddrMatch(int family, void *addr, int len,
if ((f == family) && (len == hostaddrlen) &&
(memcmp(addr, hostaddr, len) == 0)) {
res = TRUE;
#ifdef h_addr
break;
#endif
}
}
}

View file

@ -136,7 +136,7 @@ DetermineClientPid(struct _Client * client)
void
DetermineClientCmd(pid_t pid, const char **cmdname, const char **cmdargs)
{
#if !defined(__APPLE__)
#if !defined(__APPLE__) && !defined(__OpenBSD__)
char path[PATH_MAX + 1];
int totsize = 0;
int fd = 0;
@ -269,10 +269,9 @@ DetermineClientCmd(pid_t pid, const char **cmdname, const char **cmdargs)
return;
argv = kvm_getargv(kd, kp, 0);
if (cmdname) {
if (argv == NULL || argv[0] == NULL) {
*cmdname = strdup("");
if (argv == NULL || argv[0] == NULL)
return;
} else
else
*cmdname = strdup(argv[0]);
}
if (cmdargs) {

View file

@ -2992,13 +2992,13 @@ _XkbSetCompatMap(ClientPtr client, DeviceIntPtr dev,
XkbSymInterpretPtr sym;
unsigned int skipped = 0;
if ((unsigned) (req->firstSI + req->nSI) > compat->num_si) {
compat->num_si = req->firstSI + req->nSI;
if ((unsigned) (req->firstSI + req->nSI) > compat->size_si) {
compat->num_si = compat->size_si = req->firstSI + req->nSI;
compat->sym_interpret = reallocarray(compat->sym_interpret,
compat->num_si,
compat->size_si,
sizeof(XkbSymInterpretRec));
if (!compat->sym_interpret) {
compat->num_si = 0;
compat->num_si = compat->size_si = 0;
return BadAlloc;
}
}