>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]);

Reply via email to