URI: 
       check an error condition in fork() and print the actual execlp error - thinglaunch - A simple command and password promtper for X11.
  HTML git clone git://bitreich.org/thinglaunch
   DIR Log
   DIR Files
   DIR Refs
   DIR Tags
   DIR LICENSE
       ---
   DIR commit 2c329aa6247ff532fce877debb1e80075bcbbba3
   DIR parent dfd9734eae6f1adea3f1afc84cb82beee283da84
  HTML Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Sat,  8 Feb 2020 16:47:51 +0100
       
       check an error condition in fork() and print the actual execlp error
       
       checks for -1 in fork() which can happen for example with resource process
       limits. Print a clear error for fork() and execlp().
       
       Signed-off-by: Christoph Lohmann <20h@r-36.net>
       
       Diffstat:
         M thinglaunch.c                       |      14 ++++++++++----
       
       1 file changed, 10 insertions(+), 4 deletions(-)
       ---
   DIR diff --git a/thinglaunch.c b/thinglaunch.c
       @@ -449,6 +449,7 @@ void
        execcmd(void)
        {
                char *shell;
       +        pid_t pid;
        
                XDestroyWindow(dpy, win);
        
       @@ -463,18 +464,23 @@ execcmd(void)
                        exit(0);
                }
        
       -        if (fork())
       -                exit(0);
       +        switch ((pid = fork())) {
       +        case -1:
       +                die("fork: %s\n", strerror(errno));
       +        case 0:
       +                break;
       +        default:
       +                _exit(0);
       +        }
        
                shell = getenv("SHELL");
                if (!shell)
                        shell = "/bin/sh";
        
                execlp(shell, basename(shell), "-c", cbuf, (char *)NULL);
       -        die("aiee, after exec");
       +        die("execlp: %s\n", strerror(errno));
        }
        
       -
        void
        die(char *errstr, ...)
        {