>Synopsis: programs can crash xenocara servers
>Category: system
>Environment:
System : OpenBSD 7.1
Details : OpenBSD 7.1-current (GENERIC.MP) #20: Thu Jul 7 13:04:50
CEST 2022
[email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
Architecture: OpenBSD.amd64
Machine : amd64
>Description:
X server(s) crash when certain programs run (e.g. cgoban-1.9.12p3)
>How-To-Repeat:
% doas pkg_add cgoban
% cgoban
If you want to keep your X Session:
% Xephyr :1 &
% env DISPLAY=:1 cgoban
>Fix:
As the manpage kvm_getargv(3) explains, programs may put
anything in their argv. And cgoban seems to set *argv to
NULL. If xprop(1) is run on cgoban after patching xenocara with the
diff below, xprop shows
WM_COMMAND(STRING) = { }
which supports my guess.
Index: xserver/os/client.c
===================================================================
RCS file: /cvs/xenocara/xserver/os/client.c,v
retrieving revision 1.5
diff -r1.5 client.c
163c163,170
< *cmdname = strdup(argv[0]);
---
> /*
> * argv may be NULL (error from kvm_getargv(3))
> * argv[0] may be NULL (cmd withheld by application)
> */
> if (argv == NULL || argv[0] == NULL)
> *cmdname = strdup("");
> else
> *cmdname = strdup(argv[0]);