From 44f293318432773f7f200d3e5440d75e2ede37bf Mon Sep 17 00:00:00 2001 From: George Huebner Date: Tue, 16 Jun 2026 10:35:24 -0700 Subject: [PATCH] xorg-server: disable false positive buffer overrun check The bounds checks introduced by `-D_FORTIFY_SOURCE=2` in functions like `strlcpy` interact poorly with data structures that treat fixed sized arrays as flexible arrays (e.g. `struct sockaddr`). This bug manifested as an endless crashloop in XQuartz. See also https://github.com/llvm/llvm-project/issues/29694 --- pkgs/by-name/xo/xorg-server/package.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/by-name/xo/xorg-server/package.nix b/pkgs/by-name/xo/xorg-server/package.nix index 05def6678eba..b9028ccbbe4c 100644 --- a/pkgs/by-name/xo/xorg-server/package.nix +++ b/pkgs/by-name/xo/xorg-server/package.nix @@ -176,6 +176,9 @@ stdenv.mkDerivation (finalAttrs: { --subst-var-by XQUARTZ_APP "$out/Applications/XQuartz.app" ''; + # avoid linux rebuilds + ${if stdenv.hostPlatform.isDarwin then "hardeningDisable" else null} = [ "strictflexarrays1" ]; + # default X install symlinks this to Xorg, we want XQuartz postInstall = lib.optionalString stdenv.hostPlatform.isDarwin '' ln -sf $out/bin/Xquartz $out/bin/X