URI: 
       In the case the dir of the CGI is not accessible, don't run it. - geomyidae - A small C-based gopherd.
  HTML git clone git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/
   DIR Log
   DIR Files
   DIR Refs
   DIR Tags
   DIR README
   DIR LICENSE
       ---
   DIR commit d3b90fd7b38feae19f7e6192cd15051abfed45d7
   DIR parent 267cfbdc5afa6145475f5017555f05142c3aaefb
  HTML Author: Christoph Lohmann <20h@r-36.net>
       Date:   Sat, 24 Oct 2015 19:15:50 +0200
       
       In the case the dir of the CGI is not accessible, don't run it.
       
       Diffstat:
         M handlr.c                            |      14 ++++++++++----
       
       1 file changed, 10 insertions(+), 4 deletions(-)
       ---
   DIR diff --git a/handlr.c b/handlr.c
       @@ -161,8 +161,11 @@ handlecgi(int sock, char *file, char *port, char *base, char *args,
                dup2(sock, 2);
                switch(fork()) {
                case 0:
       -                if (path != nil)
       -                        chdir(path);
       +                if (path != nil) {
       +                        if (chdir(path) < 0)
       +                                break;
       +                }
       +
                        execl(file, p, sear, args, ohost, port, (char *)nil);
                case -1:
                        break;
       @@ -211,8 +214,11 @@ handledcgi(int sock, char *file, char *port, char *base, char *args,
                case 0:
                        dup2(outpipe[1], 1);
                        close(outpipe[0]);
       -                if (path != nil)
       -                        chdir(path);
       +                if (path != nil) {
       +                        if (chdir(path) < 0)
       +                                break;
       +                }
       +
                        execl(file, p, sear, args, ohost, port, (char *)nil);
                case -1:
                        break;