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: #1310 (closed) Signed-off-by: Olivier Fourdan firstname.lastname@example.org Reviewed-by: Adam Jackson email@example.com (cherry picked from commit 2efa6d65)