X-Git-Url: http://www.dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Fcallfcgi.c;h=9af59299e79594a21e5a10b3a5317ceb667be540;hb=90b0ba0f9d93e454cc08a566b718abdcbfd0d9f6;hp=9a7a36226fa485b83b36258294432b787eac7aee;hpb=09c82f9c7bc563c081425141853e6ff8e402e358;p=ashd.git diff --git a/src/callfcgi.c b/src/callfcgi.c index 9a7a362..9af5929 100644 --- a/src/callfcgi.c +++ b/src/callfcgi.c @@ -466,6 +466,7 @@ static void mkcgienv(struct hthead *req, struct charbuf *dst) bufaddenv(dst, "SCRIPT_NAME", "%s", url); } bufaddenv(dst, "QUERY_STRING", "%s", qp?qp:""); + free(url); if((h = getheader(req, "Host")) != NULL) bufaddenv(dst, "SERVER_NAME", "%s", h); if((h = getheader(req, "X-Ash-Server-Port")) != NULL) @@ -482,8 +483,11 @@ static void mkcgienv(struct hthead *req, struct charbuf *dst) bufaddenv(dst, "CONTENT_LENGTH", "%s", h); else bufaddenv(dst, "CONTENT_LENGTH", "0"); - if((h = getheader(req, "X-Ash-File")) != NULL) - bufaddenv(dst, "SCRIPT_FILENAME", "%s", absolutify(h)); + if((h = getheader(req, "X-Ash-File")) != NULL) { + h = absolutify(h); + bufaddenv(dst, "SCRIPT_FILENAME", "%s", h); + free(h); + } for(i = 0; i < req->noheaders; i++) { h = sprintf2("HTTP_%s", req->headers[i][0]); for(p = h; *p; p++) { @@ -802,6 +806,7 @@ static void sigign(int sig) static void sigexit(int sig) { + shutdown(0, SHUT_RDWR); exit(0); }