wok-current rev 25779

Build geany for x64, patch xorg-server (CVE-2025-[49175,49176,49178,49180])
author Stanislas Leduc <shann@slitaz.org>
date Thu Jun 19 08:34:55 2025 +0000 (3 months ago)
parents d362da14387d
children 8042ca312770
files geany-dev/receipt geany-plugins/receipt geany/receipt xorg-server/receipt xorg-server/stuff/CVE-2025-49175.patch xorg-server/stuff/CVE-2025-49176.patch xorg-server/stuff/CVE-2025-49178.patch xorg-server/stuff/CVE-2025-49180_1.patch xorg-server/stuff/CVE-2025-49180_2.patch
line diff
     1.1 --- a/geany-dev/receipt	Mon Jun 09 10:46:07 2025 +0000
     1.2 +++ b/geany-dev/receipt	Thu Jun 19 08:34:55 2025 +0000
     1.3 @@ -8,7 +8,7 @@
     1.4  LICENSE="GPL2"
     1.5  WANTED="geany"
     1.6  WEB_SITE="https://www.geany.org/"
     1.7 -HOST_ARCH="i486 arm"
     1.8 +HOST_ARCH="i486 arm x86_64"
     1.9  
    1.10  DEPENDS="geany pkg-config"
    1.11  
    1.12 @@ -16,7 +16,6 @@
    1.13  genpkg_rules()
    1.14  {
    1.15  	mkdir -p $fs/usr/lib/geany
    1.16 -	cp -a $install/usr/lib/geany/*.*a $fs/usr/lib/geany
    1.17  	cp -a $install/usr/lib/pkgconfig $fs/usr/lib
    1.18  	cp -a $install/usr/include $fs/usr
    1.19  }
     2.1 --- a/geany-plugins/receipt	Mon Jun 09 10:46:07 2025 +0000
     2.2 +++ b/geany-plugins/receipt	Thu Jun 19 08:34:55 2025 +0000
     2.3 @@ -9,7 +9,7 @@
     2.4  TARBALL="$PACKAGE-$VERSION.tar.gz"
     2.5  WEB_SITE="https://plugins.geany.org/"
     2.6  WGET_URL="$WEB_SITE/$PACKAGE/$TARBALL"
     2.7 -#HOST_ARCH="i486 arm"
     2.8 +HOST_ARCH="i486 arm x86_64"
     2.9  COOKOPTS="!pngquant !optipng"
    2.10  
    2.11  DEPENDS="enchant gtkspell geany lua"
    2.12 @@ -17,7 +17,7 @@
    2.13  
    2.14  # Handle cross compilation.
    2.15  case "$ARCH" in
    2.16 -	i?86) 
    2.17 +	i?86|x86_64) 
    2.18  		BUILD_DEPENDS="gtkspell-dev geany-dev lua-dev libxml2-dev vte-dev"
    2.19  esac
    2.20  
     3.1 --- a/geany/receipt	Mon Jun 09 10:46:07 2025 +0000
     3.2 +++ b/geany/receipt	Thu Jun 19 08:34:55 2025 +0000
     3.3 @@ -11,20 +11,20 @@
     3.4  WEB_SITE="https://www.geany.org/"
     3.5  WGET_URL="https://github.com/geany/geany/archive/refs/tags/$VERSION.tar.gz"
     3.6  TAGS="text-editor"
     3.7 -HOST_ARCH="i486 arm"
     3.8 +HOST_ARCH="i486 arm x86_64"
     3.9  
    3.10  DEPENDS="glibc-base glib gcc-lib-base libgio expat zlib libxcb xcb-util \
    3.11  gtk+ atk cairo pango pixman libpng fontconfig freetype xorg-libX11 \
    3.12  xorg-libXau xorg-libXcomposite xorg-libXcursor xorg-libXdamage \
    3.13  xorg-libXdmcp xorg-libXext xorg-libXfixes xorg-libXinerama xorg-libXrender"
    3.14 -BUILD_DEPENDS="glib-dev expat-dev gtk+-dev atk-dev pango-dev cairo-dev \
    3.15 -pixman-dev libpng-dev freetype-dev fontconfig-dev xorg-libXrender-dev \
    3.16 -xorg-xproto xorg-renderproto xorg-libX11-dev xorg-kbproto xorg-libXau-dev \
    3.17 -xorg-libXdmcp-dev libxml2-dev"
    3.18 +BUILD_DEPENDS="automake libtool glib-dev expat-dev gtk+-dev atk-dev \
    3.19 +pango-dev cairo-dev pixman-dev libpng-dev freetype-dev fontconfig-dev \
    3.20 +xorg-libXrender-dev xorg-xproto xorg-renderproto xorg-libX11-dev \
    3.21 +xorg-kbproto xorg-libXau-dev xorg-libXdmcp-dev libxml2-dev"
    3.22  
    3.23  # Handle cross compilation.
    3.24  case "$ARCH" in
    3.25 -	i?86) BUILD_DEPENDS="$BUILD_DEPENDS perl-xml-parser intltool gettext glibc-locale" ;;
    3.26 +	i?86|x86_64) BUILD_DEPENDS="$BUILD_DEPENDS perl-xml-parser intltool gettext glibc-locale" ;;
    3.27  	arm*) ARCH_ARGS="--disable-vte" ;;
    3.28  esac
    3.29  
    3.30 @@ -38,6 +38,8 @@
    3.31  # Rules to configure and make the package.
    3.32  compile_rules()
    3.33  {
    3.34 +	./autogen.sh
    3.35 +
    3.36  	./configure \
    3.37  		${CONFIGURE_ARGS} ${ARCH_ARGS} &&
    3.38  	make && make install
     4.1 --- a/xorg-server/receipt	Mon Jun 09 10:46:07 2025 +0000
     4.2 +++ b/xorg-server/receipt	Thu Jun 19 08:34:55 2025 +0000
     4.3 @@ -108,6 +108,14 @@
     4.4  	patch -p1 < $stuff/CVE-2025-26601.03.patch
     4.5  	patch -p1 < $stuff/CVE-2025-26601.04.patch
     4.6  
     4.7 +	# Patch xorg CVEs June 2025
     4.8 +	# see https://lists.x.org/archives/xorg/2025-June/062055.html
     4.9 +	patch -p1 < $stuff/CVE-2025-49175.patch
    4.10 +	patch -p1 < $stuff/CVE-2025-49176.patch
    4.11 +	patch -p1 < $stuff/CVE-2025-49178.patch
    4.12 +	patch -p1 < $stuff/CVE-2025-49180_1.patch
    4.13 +	patch -p1 < $stuff/CVE-2025-49180_2.patch	
    4.14 +
    4.15  	# Fix libshadow
    4.16  	# See https://gitlab.archlinux.org/archlinux/packaging/packages/xorg-server/-/tree/1.20.13-3?ref_type=tags
    4.17  	patch -p1 < $stuff/fix-libshadow.patch
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/xorg-server/stuff/CVE-2025-49175.patch	Thu Jun 19 08:34:55 2025 +0000
     5.3 @@ -0,0 +1,87 @@
     5.4 +From 0885e0b26225c90534642fe911632ec0779eebee Mon Sep 17 00:00:00 2001
     5.5 +From: Olivier Fourdan <ofourdan@redhat.com>
     5.6 +Date: Fri, 28 Mar 2025 09:43:52 +0100
     5.7 +Subject: [PATCH] render: Avoid 0 or less animated cursors
     5.8 +MIME-Version: 1.0
     5.9 +Content-Type: text/plain; charset=UTF-8
    5.10 +Content-Transfer-Encoding: 8bit
    5.11 +
    5.12 +Animated cursors use a series of cursors that the client can set.
    5.13 +
    5.14 +By default, the Xserver assumes at least one cursor is specified
    5.15 +while a client may actually pass no cursor at all.
    5.16 +
    5.17 +That causes an out-of-bound read creating the animated cursor and a
    5.18 +crash of the Xserver:
    5.19 +
    5.20 + | Invalid read of size 8
    5.21 + |    at 0x5323F4: AnimCursorCreate (animcur.c:325)
    5.22 + |    by 0x52D4C5: ProcRenderCreateAnimCursor (render.c:1817)
    5.23 + |    by 0x52DC80: ProcRenderDispatch (render.c:1999)
    5.24 + |    by 0x4A1E9D: Dispatch (dispatch.c:560)
    5.25 + |    by 0x4B0169: dix_main (main.c:284)
    5.26 + |    by 0x4287F5: main (stubmain.c:34)
    5.27 + |  Address 0x59aa010 is 0 bytes after a block of size 0 alloc'd
    5.28 + |    at 0x48468D3: reallocarray (vg_replace_malloc.c:1803)
    5.29 + |    by 0x52D3DA: ProcRenderCreateAnimCursor (render.c:1802)
    5.30 + |    by 0x52DC80: ProcRenderDispatch (render.c:1999)
    5.31 + |    by 0x4A1E9D: Dispatch (dispatch.c:560)
    5.32 + |    by 0x4B0169: dix_main (main.c:284)
    5.33 + |    by 0x4287F5: main (stubmain.c:34)
    5.34 + |
    5.35 + | Invalid read of size 2
    5.36 + |    at 0x5323F7: AnimCursorCreate (animcur.c:325)
    5.37 + |    by 0x52D4C5: ProcRenderCreateAnimCursor (render.c:1817)
    5.38 + |    by 0x52DC80: ProcRenderDispatch (render.c:1999)
    5.39 + |    by 0x4A1E9D: Dispatch (dispatch.c:560)
    5.40 + |    by 0x4B0169: dix_main (main.c:284)
    5.41 + |    by 0x4287F5: main (stubmain.c:34)
    5.42 + |  Address 0x8 is not stack'd, malloc'd or (recently) free'd
    5.43 +
    5.44 +To avoid the issue, check the number of cursors specified and return a
    5.45 +BadValue error in both the proc handler (early) and the animated cursor
    5.46 +creation (as this is a public function) if there is 0 or less cursor.
    5.47 +
    5.48 +CVE-2025-49175
    5.49 +
    5.50 +This issue was discovered by Nils Emmerich <nemmerich@ernw.de> and
    5.51 +reported by Julian Suleder via ERNW Vulnerability Disclosure.
    5.52 +
    5.53 +Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
    5.54 +Reviewed-by: José Expósito <jexposit@redhat.com>
    5.55 +Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2024>
    5.56 +---
    5.57 + render/animcur.c | 3 +++
    5.58 + render/render.c  | 2 ++
    5.59 + 2 files changed, 5 insertions(+)
    5.60 +
    5.61 +diff --git a/render/animcur.c b/render/animcur.c
    5.62 +index f906cd8130..1194cee7e7 100644
    5.63 +--- a/render/animcur.c
    5.64 ++++ b/render/animcur.c
    5.65 +@@ -305,6 +305,9 @@ AnimCursorCreate(CursorPtr *cursors, CARD32 *deltas, int ncursor,
    5.66 +     int rc = BadAlloc, i;
    5.67 +     AnimCurPtr ac;
    5.68 + 
    5.69 ++    if (ncursor <= 0)
    5.70 ++        return BadValue;
    5.71 ++
    5.72 +     for (i = 0; i < screenInfo.numScreens; i++)
    5.73 +         if (!GetAnimCurScreen(screenInfo.screens[i]))
    5.74 +             return BadImplementation;
    5.75 +diff --git a/render/render.c b/render/render.c
    5.76 +index 113f6e0c5a..fe9f03c8c8 100644
    5.77 +--- a/render/render.c
    5.78 ++++ b/render/render.c
    5.79 +@@ -1799,6 +1799,8 @@ ProcRenderCreateAnimCursor(ClientPtr client)
    5.80 +     ncursor =
    5.81 +         (client->req_len -
    5.82 +          (bytes_to_int32(sizeof(xRenderCreateAnimCursorReq)))) >> 1;
    5.83 ++    if (ncursor <= 0)
    5.84 ++        return BadValue;
    5.85 +     cursors = xallocarray(ncursor, sizeof(CursorPtr) + sizeof(CARD32));
    5.86 +     if (!cursors)
    5.87 +         return BadAlloc;
    5.88 +-- 
    5.89 +GitLab
    5.90 +
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/xorg-server/stuff/CVE-2025-49176.patch	Thu Jun 19 08:34:55 2025 +0000
     6.3 @@ -0,0 +1,88 @@
     6.4 +From 03731b326a80b582e48d939fe62cb1e2b10400d9 Mon Sep 17 00:00:00 2001
     6.5 +From: Olivier Fourdan <ofourdan@redhat.com>
     6.6 +Date: Mon, 7 Apr 2025 16:13:34 +0200
     6.7 +Subject: [PATCH] os: Do not overflow the integer size with BigRequest
     6.8 +MIME-Version: 1.0
     6.9 +Content-Type: text/plain; charset=UTF-8
    6.10 +Content-Transfer-Encoding: 8bit
    6.11 +
    6.12 +The BigRequest extension allows requests larger than the 16-bit length
    6.13 +limit.
    6.14 +
    6.15 +It uses integers for the request length and checks for the size not to
    6.16 +exceed the maxBigRequestSize limit, but does so after translating the
    6.17 +length to integer by multiplying the given size in bytes by 4.
    6.18 +
    6.19 +In doing so, it might overflow the integer size limit before actually
    6.20 +checking for the overflow, defeating the purpose of the test.
    6.21 +
    6.22 +To avoid the issue, make sure to check that the request size does not
    6.23 +overflow the maxBigRequestSize limit prior to any conversion.
    6.24 +
    6.25 +The caller Dispatch() function however expects the return value to be in
    6.26 +bytes, so we cannot just return the converted value in case of error, as
    6.27 +that would also overflow the integer size.
    6.28 +
    6.29 +To preserve the existing API, we use a negative value for the X11 error
    6.30 +code BadLength as the function only return positive values, 0 or -1 and
    6.31 +update the caller Dispatch() function to take that case into account to
    6.32 +return the error code to the offending client.
    6.33 +
    6.34 +CVE-2025-49176
    6.35 +
    6.36 +This issue was discovered by Nils Emmerich <nemmerich@ernw.de> and
    6.37 +reported by Julian Suleder via ERNW Vulnerability Disclosure.
    6.38 +
    6.39 +Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
    6.40 +Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
    6.41 +Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2024>
    6.42 +---
    6.43 + dix/dispatch.c | 9 +++++----
    6.44 + os/io.c        | 4 ++++
    6.45 + 2 files changed, 9 insertions(+), 4 deletions(-)
    6.46 +
    6.47 +diff --git a/dix/dispatch.c b/dix/dispatch.c
    6.48 +index b3e5feacc2..2308cfe6d1 100644
    6.49 +--- a/dix/dispatch.c
    6.50 ++++ b/dix/dispatch.c
    6.51 +@@ -527,9 +527,10 @@ Dispatch(void)
    6.52 + 
    6.53 +                 /* now, finally, deal with client requests */
    6.54 +                 result = ReadRequestFromClient(client);
    6.55 +-                if (result <= 0) {
    6.56 +-                    if (result < 0)
    6.57 +-                        CloseDownClient(client);
    6.58 ++                if (result == 0)
    6.59 ++                    break;
    6.60 ++                else if (result == -1) {
    6.61 ++                    CloseDownClient(client);
    6.62 +                     break;
    6.63 +                 }
    6.64 + 
    6.65 +@@ -550,7 +551,7 @@ Dispatch(void)
    6.66 +                                           client->index,
    6.67 +                                           client->requestBuffer);
    6.68 + #endif
    6.69 +-                if (result > (maxBigRequestSize << 2))
    6.70 ++                if (result < 0 || result > (maxBigRequestSize << 2))
    6.71 +                     result = BadLength;
    6.72 +                 else {
    6.73 +                     result = XaceHookDispatch(client, client->majorOp);
    6.74 +diff --git a/os/io.c b/os/io.c
    6.75 +index 1fffaf62c7..3e39c10e6f 100644
    6.76 +--- a/os/io.c
    6.77 ++++ b/os/io.c
    6.78 +@@ -300,6 +300,10 @@ ReadRequestFromClient(ClientPtr client)
    6.79 +                 needed = get_big_req_len(request, client);
    6.80 +         }
    6.81 +         client->req_len = needed;
    6.82 ++        if (needed > MAXINT >> 2) {
    6.83 ++            /* Check for potential integer overflow */
    6.84 ++            return -(BadLength);
    6.85 ++        }
    6.86 +         needed <<= 2;           /* needed is in bytes now */
    6.87 +     }
    6.88 +     if (gotnow < needed) {
    6.89 +-- 
    6.90 +GitLab
    6.91 +
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/xorg-server/stuff/CVE-2025-49178.patch	Thu Jun 19 08:34:55 2025 +0000
     7.3 @@ -0,0 +1,45 @@
     7.4 +From d55c54cecb5e83eaa2d56bed5cc4461f9ba318c2 Mon Sep 17 00:00:00 2001
     7.5 +From: Olivier Fourdan <ofourdan@redhat.com>
     7.6 +Date: Mon, 28 Apr 2025 10:46:03 +0200
     7.7 +Subject: [PATCH] os: Account for bytes to ignore when sharing input buffer
     7.8 +
     7.9 +When reading requests from the clients, the input buffer might be shared
    7.10 +and used between different clients.
    7.11 +
    7.12 +If a given client sends a full request with non-zero bytes to ignore,
    7.13 +the bytes to ignore may still be non-zero even though the request is
    7.14 +full, in which case the buffer could be shared with another client who's
    7.15 +request will not be processed because of those bytes to ignore, leading
    7.16 +to a possible hang of the other client request.
    7.17 +
    7.18 +To avoid the issue, make sure we have zero bytes to ignore left in the
    7.19 +input request when sharing the input buffer with another client.
    7.20 +
    7.21 +CVE-2025-49178
    7.22 +
    7.23 +This issue was discovered by Nils Emmerich <nemmerich@ernw.de> and
    7.24 +reported by Julian Suleder via ERNW Vulnerability Disclosure.
    7.25 +
    7.26 +Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
    7.27 +Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    7.28 +Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2024>
    7.29 +---
    7.30 + os/io.c | 2 +-
    7.31 + 1 file changed, 1 insertion(+), 1 deletion(-)
    7.32 +
    7.33 +diff --git a/os/io.c b/os/io.c
    7.34 +index 3e39c10e6f..e7b76b9cea 100644
    7.35 +--- a/os/io.c
    7.36 ++++ b/os/io.c
    7.37 +@@ -441,7 +441,7 @@ ReadRequestFromClient(ClientPtr client)
    7.38 +      */
    7.39 + 
    7.40 +     gotnow -= needed;
    7.41 +-    if (!gotnow)
    7.42 ++    if (!gotnow && !oci->ignoreBytes)
    7.43 +         AvailableInput = oc;
    7.44 +     if (move_header) {
    7.45 +         if (client->req_len < bytes_to_int32(sizeof(xBigReq) - sizeof(xReq))) {
    7.46 +-- 
    7.47 +GitLab
    7.48 +
     8.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.2 +++ b/xorg-server/stuff/CVE-2025-49180_1.patch	Thu Jun 19 08:34:55 2025 +0000
     8.3 @@ -0,0 +1,40 @@
     8.4 +From 3c3a4b767b16174d3213055947ea7f4f88e10ec6 Mon Sep 17 00:00:00 2001
     8.5 +From: Olivier Fourdan <ofourdan@redhat.com>
     8.6 +Date: Tue, 20 May 2025 15:18:19 +0200
     8.7 +Subject: [PATCH] randr: Check for overflow in RRChangeProviderProperty()
     8.8 +
     8.9 +A client might send a request causing an integer overflow when computing
    8.10 +the total size to allocate in RRChangeProviderProperty().
    8.11 +
    8.12 +To avoid the issue, check that total length in bytes won't exceed the
    8.13 +maximum integer value.
    8.14 +
    8.15 +CVE-2025-49180
    8.16 +
    8.17 +This issue was discovered by Nils Emmerich <nemmerich@ernw.de> and
    8.18 +reported by Julian Suleder via ERNW Vulnerability Disclosure.
    8.19 +
    8.20 +Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
    8.21 +Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    8.22 +Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2024>
    8.23 +---
    8.24 + randr/rrproviderproperty.c | 3 ++-
    8.25 + 1 file changed, 2 insertions(+), 1 deletion(-)
    8.26 +
    8.27 +diff --git a/randr/rrproviderproperty.c b/randr/rrproviderproperty.c
    8.28 +index 69f66ed278..0c3dcd1bc5 100644
    8.29 +--- a/randr/rrproviderproperty.c
    8.30 ++++ b/randr/rrproviderproperty.c
    8.31 +@@ -182,7 +182,8 @@ RRChangeProviderProperty(RRProviderPtr provider, Atom property, Atom type,
    8.32 + 
    8.33 +     if (mode == PropModeReplace || len > 0) {
    8.34 +         void *new_data = NULL, *old_data = NULL;
    8.35 +-
    8.36 ++        if (total_len > MAXINT / size_in_bytes)
    8.37 ++            return BadValue;
    8.38 +         total_size = total_len * size_in_bytes;
    8.39 +         new_value.data = (void *) malloc(total_size);
    8.40 +         if (!new_value.data && total_size) {
    8.41 +-- 
    8.42 +GitLab
    8.43 +
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/xorg-server/stuff/CVE-2025-49180_2.patch	Thu Jun 19 08:34:55 2025 +0000
     9.3 @@ -0,0 +1,48 @@
     9.4 +From 0235121c6a7a6eb247e2addb3b41ed6ef566853d Mon Sep 17 00:00:00 2001
     9.5 +From: Olivier Fourdan <ofourdan@redhat.com>
     9.6 +Date: Mon, 28 Apr 2025 14:59:46 +0200
     9.7 +Subject: [PATCH] xfree86: Check for RandR provider functions
     9.8 +
     9.9 +Changing XRandR provider properties if the driver has set no provider
    9.10 +function such as the modesetting driver will cause a NULL pointer
    9.11 +dereference and a crash of the Xorg server.
    9.12 +
    9.13 +Related to CVE-2025-49180
    9.14 +
    9.15 +This issue was discovered by Nils Emmerich <nemmerich@ernw.de> and
    9.16 +reported by Julian Suleder via ERNW Vulnerability Disclosure.
    9.17 +
    9.18 +Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
    9.19 +Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    9.20 +Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2024>
    9.21 +---
    9.22 + hw/xfree86/modes/xf86RandR12.c | 6 ++++--
    9.23 + 1 file changed, 4 insertions(+), 2 deletions(-)
    9.24 +
    9.25 +diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
    9.26 +index ddcf5e748a..bf33da377a 100644
    9.27 +--- a/hw/xfree86/modes/xf86RandR12.c
    9.28 ++++ b/hw/xfree86/modes/xf86RandR12.c
    9.29 +@@ -2146,7 +2146,8 @@ xf86RandR14ProviderSetProperty(ScreenPtr pScreen,
    9.30 +     /* If we don't have any property handler, then we don't care what the
    9.31 +      * user is setting properties to.
    9.32 +      */
    9.33 +-    if (config->provider_funcs->set_property == NULL)
    9.34 ++    if (config->provider_funcs == NULL ||
    9.35 ++        config->provider_funcs->set_property == NULL)
    9.36 +         return TRUE;
    9.37 + 
    9.38 +     /*
    9.39 +@@ -2164,7 +2165,8 @@ xf86RandR14ProviderGetProperty(ScreenPtr pScreen,
    9.40 +     ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
    9.41 +     xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn);
    9.42 + 
    9.43 +-    if (config->provider_funcs->get_property == NULL)
    9.44 ++    if (config->provider_funcs == NULL ||
    9.45 ++        config->provider_funcs->get_property == NULL)
    9.46 +         return TRUE;
    9.47 + 
    9.48 +     /* Should be safe even w/o vtSema */
    9.49 +-- 
    9.50 +GitLab
    9.51 +