diff options
Diffstat (limited to 'x11-base/xorg-server/files')
-rw-r--r-- | x11-base/xorg-server/files/xorg-server-21.1.4-BadIDChoice.patch | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/x11-base/xorg-server/files/xorg-server-21.1.4-BadIDChoice.patch b/x11-base/xorg-server/files/xorg-server-21.1.4-BadIDChoice.patch deleted file mode 100644 index def3c587..00000000 --- a/x11-base/xorg-server/files/xorg-server-21.1.4-BadIDChoice.patch +++ /dev/null @@ -1,59 +0,0 @@ -https://bugs.gentoo.org/857483 -https://gitlab.freedesktop.org/xorg/xserver/-/issues/1310 -https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/953 - -From f61307631203ab0266c035db07c2f776cf7c6cf4 Mon Sep 17 00:00:00 2001 -From: Olivier Fourdan <ofourdan@redhat.com> -Date: Tue, 12 Jul 2022 14:44:48 +0200 -Subject: [PATCH] dix: Fix overzealous caching of ResourceClientBits() - -Commit c7311654 cached the value of ResourceClientBits(), but that value -depends on the `MaxClients` value set either from the command line or -from the configuration file. - -For the latter, a call to ResourceClientBits() is issued before the -configuration file is read, meaning that the cached value is from the -default, not from the maximum number of clients set in the configuration -file. - -That obviously causes all sort of issues, including memory corruption -and crashes of the Xserver when reaching the default limit value. - -To avoid that issue, also keep the LimitClient value, and recompute the -ilog2() value if that changes, as on startup when the value is set from -the the xorg.conf ServerFlags section. - -v2: Drop the `cache == 0` test - Rename cache vars - -Fixes: c7311654 - dix: cache ResourceClientBits() value -Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1310 -Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> -Reviewed-by: Adam Jackson <ajax@redhat.com> -(cherry picked from commit 2efa6d659508346358a1ef27b2393e18843f66a3) ---- a/dix/resource.c -+++ b/dix/resource.c -@@ -620,12 +620,15 @@ ilog2(int val) - unsigned int - ResourceClientBits(void) - { -- static unsigned int cached = 0; -+ static unsigned int cache_ilog2 = 0; -+ static unsigned int cache_limit = 0; - -- if (cached == 0) -- cached = ilog2(LimitClients); -+ if (LimitClients != cache_limit) { -+ cache_limit = LimitClients; -+ cache_ilog2 = ilog2(LimitClients); -+ } - -- return cached; -+ return cache_ilog2; - } - - /***************** --- -GitLab - - |