httpd: remove redundant NULL assignment and save one strrchr. -8 bytes
authorDenys Vlasenko <vda.linux@googlemail.com>
Sun, 18 Dec 2011 02:22:36 +0000 (03:22 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Sun, 18 Dec 2011 02:22:36 +0000 (03:22 +0100)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
networking/httpd.c

index f52785bf4f4d782079dfb54772cfe46b3fca5f05..cda7cc7af528e3ea5000d625f3c5e38065e4e0b4 100644 (file)
@@ -1284,7 +1284,7 @@ static void send_cgi_and_exit(
 {
        struct fd_pair fromCgi;  /* CGI -> httpd pipe */
        struct fd_pair toCgi;    /* httpd -> CGI pipe */
-       char *script;
+       char *script, *last_slash;
        int pid;
 
        /* Make a copy. NB: caller guarantees:
@@ -1298,15 +1298,18 @@ static void send_cgi_and_exit(
         */
 
        /* Check for [dirs/]script.cgi/PATH_INFO */
-       script = (char*)url;
+       last_slash = script = (char*)url;
        while ((script = strchr(script + 1, '/')) != NULL) {
+               int dir;
                *script = '\0';
-               if (!is_directory(url + 1, 1, NULL)) {
+               dir = is_directory(url + 1, /*followlinks:*/ 1, NULL);
+               *script = '/';
+               if (!dir) {
                        /* not directory, found script.cgi/PATH_INFO */
-                       *script = '/';
                        break;
                }
-               *script = '/'; /* is directory, find next '/' */
+               /* is directory, find next '/' */
+               last_slash = script;
        }
        setenv1("PATH_INFO", script);   /* set to /PATH_INFO or "" */
        setenv1("REQUEST_METHOD", request);
@@ -1387,7 +1390,7 @@ static void send_cgi_and_exit(
                log_and_exit();
        }
 
-       if (!pid) {
+       if (pid == 0) {
                /* Child process */
                char *argv[3];
 
@@ -1403,7 +1406,7 @@ static void send_cgi_and_exit(
                /* dup2(1, 2); */
 
                /* Chdiring to script's dir */
-               script = strrchr(url, '/');
+               script = last_slash;
                if (script != url) { /* paranoia */
                        *script = '\0';
                        if (chdir(url + 1) != 0) {
@@ -1992,7 +1995,7 @@ static void handle_incoming_and_exit(const len_and_sockaddr *fromAddr)
        /* NB: urlcopy ptr is never changed after this */
 
        /* Extract url args if present */
-       g_query = NULL;
+       /* g_query = NULL; - already is */
        tptr = strchr(urlcopy, '?');
        if (tptr) {
                *tptr++ = '\0';