coar        98/06/15 09:27:56

  Modified:    src/main util_script.c
  Log:
        More style-guide cleanups.
  
  Revision  Changes    Path
  1.118     +208 -122  apache-1.3/src/main/util_script.c
  
  Index: util_script.c
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/main/util_script.c,v
  retrieving revision 1.117
  retrieving revision 1.118
  diff -u -r1.117 -r1.118
  --- util_script.c     1998/06/13 15:22:54     1.117
  +++ util_script.c     1998/06/15 16:27:55     1.118
  @@ -100,21 +100,26 @@
   
       /* count the number of keywords */
   
  -    for (x = 0, numwords = 1; args[x]; x++)
  -     if (args[x] == '+')
  +    for (x = 0, numwords = 1; args[x]; x++) {
  +        if (args[x] == '+') {
            ++numwords;
  +     }
  +    }
   
       if (numwords > APACHE_ARG_MAX - 5) {
        numwords = APACHE_ARG_MAX - 5;  /* Truncate args to prevent overrun */
       }
       av = (char **) ap_palloc(p, (numwords + 5) * sizeof(char *));
   
  -    if (path)
  +    if (path) {
        av[idx++] = path;
  -    if (user)
  +    }
  +    if (user) {
        av[idx++] = user;
  -    if (group)
  +    }
  +    if (group) {
        av[idx++] = group;
  +    }
   
       av[idx++] = av0;
   
  @@ -157,12 +162,14 @@
       j = 0;
       if (!ap_table_get(t, "TZ")) {
        tz = getenv("TZ");
  -     if (tz != NULL)
  +     if (tz != NULL) {
            env[j++] = ap_pstrcat(p, "TZ=", tz, NULL);
  +     }
       }
       for (i = 0; i < env_arr->nelts; ++i) {
  -     if (!elts[i].key)
  +        if (!elts[i].key) {
            continue;
  +     }
        env[j] = ap_pstrcat(p, elts[i].key, "=", elts[i].val, NULL);
        whack = env[j];
        if (isdigit(*whack)) {
  @@ -203,48 +210,58 @@
        */
   
       for (i = 0; i < hdrs_arr->nelts; ++i) {
  -     if (!hdrs[i].key)
  +        if (!hdrs[i].key) {
            continue;
  +     }
   
        /* A few headers are special cased --- Authorization to prevent
         * rogue scripts from capturing passwords; content-type and -length
         * for no particular reason.
         */
   
  -     if (!strcasecmp(hdrs[i].key, "Content-type"))
  +     if (!strcasecmp(hdrs[i].key, "Content-type")) {
            ap_table_setn(e, "CONTENT_TYPE", hdrs[i].val);
  -     else if (!strcasecmp(hdrs[i].key, "Content-length"))
  +     }
  +     else if (!strcasecmp(hdrs[i].key, "Content-length")) {
            ap_table_setn(e, "CONTENT_LENGTH", hdrs[i].val);
  +     }
        /*
         * You really don't want to disable this check, since it leaves you
         * wide open to CGIs stealing passwords and people viewing them
         * in the environment with "ps -e".  But, if you must...
         */
   #ifndef SECURITY_HOLE_PASS_AUTHORIZATION
  -     else if (!strcasecmp(hdrs[i].key, "Authorization") ||
  -                 !strcasecmp(hdrs[i].key, "Proxy-Authorization"))
  +     else if (!strcasecmp(hdrs[i].key, "Authorization") 
  +              || !strcasecmp(hdrs[i].key, "Proxy-Authorization")) {
            continue;
  +     }
   #endif
  -     else
  +     else {
            ap_table_setn(e, http2env(r->pool, hdrs[i].key), hdrs[i].val);
  +     }
       }
   
  -    if (!(env_path = getenv("PATH")))
  +    if (!(env_path = getenv("PATH"))) {
        env_path = DEFAULT_PATH;
  +    }
   
   #ifdef WIN32
  -    if (env_temp = getenv("SystemRoot"))
  +    if (env_temp = getenv("SystemRoot")) {
           ap_table_setn(e, "SystemRoot", env_temp);         
  -    if (env_temp = getenv("COMSPEC"))
  +    }
  +    if (env_temp = getenv("COMSPEC")) {
           ap_table_setn(e, "COMSPEC", env_temp);            
  -    if (env_temp = getenv("WINDIR"))
  -        ap_table_setn(e, "WINDIR", env_temp);             
  +    }
  +    if (env_temp = getenv("WINDIR")) {
  +        ap_table_setn(e, "WINDIR", env_temp);
  +    }
   #endif
   
       ap_table_setn(e, "PATH", env_path);
       ap_table_setn(e, "SERVER_SOFTWARE", ap_get_server_version());
       ap_table_setn(e, "SERVER_NAME", ap_get_server_name(r));
  -    ap_table_setn(e, "SERVER_PORT", ap_psprintf(r->pool, "%u", 
ap_get_server_port(r)));
  +    ap_table_setn(e, "SERVER_PORT",
  +               ap_psprintf(r->pool, "%u", ap_get_server_port(r)));
       host = ap_get_remote_host(c, r->per_dir_config, REMOTE_HOST);
       if (host) {
        ap_table_setn(e, "REMOTE_HOST", host);
  @@ -254,23 +271,29 @@
       ap_table_setn(e, "SERVER_ADMIN", s->server_admin);       /* Apache */
       ap_table_setn(e, "SCRIPT_FILENAME", r->filename);        /* Apache */
   
  -    ap_table_setn(e, "REMOTE_PORT", ap_psprintf(r->pool, "%d", 
ntohs(c->remote_addr.sin_port)));
  +    ap_table_setn(e, "REMOTE_PORT",
  +               ap_psprintf(r->pool, "%d", ntohs(c->remote_addr.sin_port)));
   
  -    if (c->user)
  +    if (c->user) {
        ap_table_setn(e, "REMOTE_USER", c->user);
  -    if (c->ap_auth_type)
  +    }
  +    if (c->ap_auth_type) {
        ap_table_setn(e, "AUTH_TYPE", c->ap_auth_type);
  +    }
       rem_logname = ap_get_remote_logname(r);
  -    if (rem_logname)
  +    if (rem_logname) {
        ap_table_setn(e, "REMOTE_IDENT", ap_pstrdup(r->pool, rem_logname));
  +    }
   
       /* Apache custom error responses. If we have redirected set two new vars 
*/
   
       if (r->prev) {
  -     if (r->prev->args)
  +        if (r->prev->args) {
            ap_table_setn(e, "REDIRECT_QUERY_STRING", r->prev->args);
  -     if (r->prev->uri)
  +     }
  +     if (r->prev->uri) {
            ap_table_setn(e, "REDIRECT_URL", r->prev->uri);
  +     }
       }
   }
   
  @@ -286,12 +309,13 @@
   
       while (lu-- && lp-- && uri[lu] == path_info[lp]);
   
  -    if (lu == -1)
  +    if (lu == -1) {
        lu = 0;
  -
  -    while (uri[lu] != '\0' && uri[lu] != '/')
  -     lu++;
  +    }
   
  +    while (uri[lu] != '\0' && uri[lu] != '/') {
  +        lu++;
  +    }
       return lu;
   }
   
  @@ -302,19 +326,23 @@
   {
       char *first, *last;
   
  -    if (r->the_request == NULL)
  +    if (r->the_request == NULL) {
        return (char *) ap_pcalloc(r->pool, 1);
  +    }
   
       first = r->the_request;  /* use the request-line */
   
  -    while (*first && !isspace(*first))
  +    while (*first && !isspace(*first)) {
        ++first;                /* skip over the method */
  -    while (isspace(*first))
  +    }
  +    while (isspace(*first)) {
        ++first;                /*   and the space(s)   */
  +    }
   
       last = first;
  -    while (*last && !isspace(*last))
  +    while (*last && !isspace(*last)) {
        ++last;                 /* end at next whitespace */
  +    }
   
       return ap_pstrndup(r->pool, first, last - first);
   }
  @@ -337,8 +365,9 @@
   
       if (!strcmp(r->protocol, "INCLUDED")) {
        ap_table_setn(e, "SCRIPT_NAME", r->uri);
  -     if (r->path_info && *r->path_info)
  +     if (r->path_info && *r->path_info) {
            ap_table_setn(e, "PATH_INFO", r->path_info);
  +     }
       }
       else if (!r->path_info || !*r->path_info) {
        ap_table_setn(e, "SCRIPT_NAME", r->uri);
  @@ -346,8 +375,8 @@
       else {
        int path_info_start = ap_find_path_info(r->uri, r->path_info);
   
  -     ap_table_setn(e, "SCRIPT_NAME", ap_pstrndup(r->pool, r->uri,
  -                                          path_info_start));
  +     ap_table_setn(e, "SCRIPT_NAME",
  +                   ap_pstrndup(r->pool, r->uri, path_info_start));
   
        ap_table_setn(e, "PATH_INFO", r->path_info);
       }
  @@ -358,15 +387,16 @@
         * Need to re-escape it for this, since the entire URI was
         * un-escaped before we determined where the PATH_INFO began.
         */
  -     request_rec *pa_req = ap_sub_req_lookup_uri(escape_uri(r->pool, 
r->path_info),
  -                                              r);
  +     request_rec *pa_req;
  +
  +     pa_req = ap_sub_req_lookup_uri(escape_uri(r->pool, r->path_info), r);
   
        if (pa_req->filename) {
   #ifdef WIN32
            char buffer[HUGE_STRING_LEN];
   #endif
            char *pt = ap_pstrcat(r->pool, pa_req->filename, pa_req->path_info,
  -                            NULL);
  +                               NULL);
   #ifdef WIN32
            /* We need to make this a real Windows path name */
            GetFullPathName(pt, HUGE_STRING_LEN, buffer, NULL);
  @@ -381,15 +411,17 @@
   
   
   static int scan_script_header_err_core(request_rec *r, char *buffer,
  -              int (*getsfunc) (char *, int, void *), void *getsfunc_data)
  +                                    int (*getsfunc) (char *, int, void *),
  +                                    void *getsfunc_data)
   {
       char x[MAX_STRING_LEN];
       char *w, *l;
       int p;
       int cgi_status = HTTP_OK;
   
  -    if (buffer)
  +    if (buffer) {
        *buffer = '\0';
  +    }
       w = buffer ? buffer : x;
   
       ap_hard_timeout("read script header", r);
  @@ -399,7 +431,7 @@
        if ((*getsfunc) (w, MAX_STRING_LEN - 1, getsfunc_data) == 0) {
            ap_kill_timeout(r);
            ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, r->server,
  -                     "Premature end of script headers: %s", r->filename);
  +                      "Premature end of script headers: %s", r->filename);
            return SERVER_ERROR;
        }
   
  @@ -407,10 +439,12 @@
   
        p = strlen(w);
        if (p > 0 && w[p - 1] == '\n') {
  -         if (p > 1 && w[p - 2] == '\015')
  +         if (p > 1 && w[p - 2] == '\015') {
                w[p - 2] = '\0';
  -         else
  +         }
  +         else {
                w[p - 1] = '\0';
  +         }
        }
   
        /*
  @@ -438,24 +472,29 @@
        /* if we see a bogus header don't ignore it. Shout and scream */
   
        if (!(l = strchr(w, ':'))) {
  -         char malformed[(sizeof MALFORMED_MESSAGE) + 1 + 
MALFORMED_HEADER_LENGTH_TO_SHOW];
  +         char malformed[(sizeof MALFORMED_MESSAGE) + 1
  +                        + MALFORMED_HEADER_LENGTH_TO_SHOW];
  +
            strcpy(malformed, MALFORMED_MESSAGE);
            strncat(malformed, w, MALFORMED_HEADER_LENGTH_TO_SHOW);
   
  -         if (!buffer)
  -             /* Soak up all the script output --- may save an outright kill 
*/
  -             while ((*getsfunc) (w, MAX_STRING_LEN - 1, getsfunc_data))
  +         if (!buffer) {
  +             /* Soak up all the script output - may save an outright kill */
  +             while ((*getsfunc) (w, MAX_STRING_LEN - 1, getsfunc_data)) {
                    continue;
  +             }
  +         }
   
            ap_kill_timeout(r);
            ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, r->server,
  -                     "%s: %s", malformed, r->filename);
  +                      "%s: %s", malformed, r->filename);
            return SERVER_ERROR;
        }
   
        *l++ = '\0';
  -     while (*l && isspace(*l))
  +     while (*l && isspace(*l)) {
            ++l;
  +     }
   
        if (!strcasecmp(w, "Content-type")) {
            char *tmp;
  @@ -463,8 +502,9 @@
            /* Nuke trailing whitespace */
   
            char *endp = l + strlen(l) - 1;
  -         while (endp > l && isspace(*endp))
  +         while (endp > l && isspace(*endp)) {
                *endp-- = '\0';
  +         }
   
            tmp = ap_pstrdup(r->pool, l);
            ap_content_type_tolower(tmp);
  @@ -516,7 +556,8 @@
       return fgets(buf, len, (FILE *) f) != NULL;
   }
   
  -API_EXPORT(int) ap_scan_script_header_err(request_rec *r, FILE *f, char 
*buffer)
  +API_EXPORT(int) ap_scan_script_header_err(request_rec *r, FILE *f,
  +                                       char *buffer)
   {
       return scan_script_header_err_core(r, buffer, getsfunc_FILE, f);
   }
  @@ -536,18 +577,24 @@
   API_EXPORT(void) ap_send_size(size_t size, request_rec *r)
   {
       /* XXX: this -1 thing is a gross hack */
  -    if (size == (size_t)-1)
  +    if (size == (size_t)-1) {
        ap_rputs("    -", r);
  -    else if (!size)
  +    }
  +    else if (!size) {
        ap_rputs("   0k", r);
  -    else if (size < 1024)
  +    }
  +    else if (size < 1024) {
        ap_rputs("   1k", r);
  -    else if (size < 1048576)
  +    }
  +    else if (size < 1048576) {
        ap_rprintf(r, "%4dk", (size + 512) / 1024);
  -    else if (size < 103809024)
  +    }
  +    else if (size < 103809024) {
        ap_rprintf(r, "%4.1fM", size / 1048576.0);
  -    else
  +    }
  +    else {
        ap_rprintf(r, "%4dM", (size + 524288) / 1048576);
  +    }
   }
   
   #if defined(__EMX__) || defined(WIN32)
  @@ -557,9 +604,11 @@
       char **av;
       char *w;
   
  -    for (x = 0, n = 2; args[x]; x++)
  -     if (args[x] == '+')
  +    for (x = 0, n = 2; args[x]; x++) {
  +        if (args[x] == '+') {
            ++n;
  +     }
  +    }
   
       /* Add extra strings to array. */
       n = n + 2;
  @@ -582,14 +631,16 @@
   #endif
   
   
  -API_EXPORT(int) ap_call_exec(request_rec *r, child_info *pinfo, char *argv0, 
char **env, int shellcmd)
  +API_EXPORT(int) ap_call_exec(request_rec *r, child_info *pinfo, char *argv0,
  +                          char **env, int shellcmd)
   {
       int pid = 0;
   #if defined(RLIMIT_CPU)  || defined(RLIMIT_NPROC) || \
       defined(RLIMIT_DATA) || defined(RLIMIT_VMEM) || defined (RLIMIT_AS)
   
  -    core_dir_config *conf =
  -    (core_dir_config *) ap_get_module_config(r->per_dir_config, 
&core_module);
  +    core_dir_config *conf;
  +    conf = (core_dir_config *) ap_get_module_config(r->per_dir_config,
  +                                                 &core_module);
   
   #endif
   
  @@ -603,44 +654,58 @@
   #endif
   
   #ifdef RLIMIT_CPU
  -    if (conf->limit_cpu != NULL)
  -     if ((setrlimit(RLIMIT_CPU, conf->limit_cpu)) != 0)
  +    if (conf->limit_cpu != NULL) {
  +        if ((setrlimit(RLIMIT_CPU, conf->limit_cpu)) != 0) {
            ap_log_error(APLOG_MARK, APLOG_ERR, r->server,
  -                     "setrlimit: failed to set CPU usage limit");
  +                      "setrlimit: failed to set CPU usage limit");
  +     }
  +    }
   #endif
   #ifdef RLIMIT_NPROC
  -    if (conf->limit_nproc != NULL)
  -     if ((setrlimit(RLIMIT_NPROC, conf->limit_nproc)) != 0)
  +    if (conf->limit_nproc != NULL) {
  +        if ((setrlimit(RLIMIT_NPROC, conf->limit_nproc)) != 0) {
            ap_log_error(APLOG_MARK, APLOG_ERR, r->server,
  -                     "setrlimit: failed to set process limit");
  +                      "setrlimit: failed to set process limit");
  +     }
  +    }
   #endif
   #if defined(RLIMIT_AS)
  -    if (conf->limit_mem != NULL)
  -     if ((setrlimit(RLIMIT_AS, conf->limit_mem)) != 0)
  +    if (conf->limit_mem != NULL) {
  +        if ((setrlimit(RLIMIT_AS, conf->limit_mem)) != 0) {
            ap_log_error(APLOG_MARK, APLOG_ERR, r->server,
  -                     "setrlimit(RLIMIT_AS): failed to set memory usage 
limit");
  +                      "setrlimit(RLIMIT_AS): failed to set memory "
  +                      "usage limit");
  +     }
  +    }
   #elif defined(RLIMIT_DATA)
  -    if (conf->limit_mem != NULL)
  -     if ((setrlimit(RLIMIT_DATA, conf->limit_mem)) != 0)
  +    if (conf->limit_mem != NULL) {
  +        if ((setrlimit(RLIMIT_DATA, conf->limit_mem)) != 0) {
            ap_log_error(APLOG_MARK, APLOG_ERR, r->server,
  -                     "setrlimit(RLIMIT_DATA): failed to set memory usage 
limit");
  +                      "setrlimit(RLIMIT_DATA): failed to set memory "
  +                      "usage limit");
  +     }
  +    }
   #elif defined(RLIMIT_VMEM)
  -    if (conf->limit_mem != NULL)
  -     if ((setrlimit(RLIMIT_VMEM, conf->limit_mem)) != 0)
  +    if (conf->limit_mem != NULL) {
  +        if ((setrlimit(RLIMIT_VMEM, conf->limit_mem)) != 0) {
            ap_log_error(APLOG_MARK, APLOG_ERR, r->server,
  -                     "setrlimit(RLIMIT_VMEM): failed to set memory usage 
limit");
  +                      "setrlimit(RLIMIT_VMEM): failed to set memory "
  +                      "usage limit");
  +     }
  +    }
   #endif
   
   #ifdef __EMX__
       {
        /* Additions by Alec Kloss, to allow exec'ing of scripts under OS/2 */
        int is_script;
  -     char interpreter[2048]; /* hope this is large enough for the 
interpreter path */
  +     char interpreter[2048]; /* hope it's enough for the interpreter path */
        FILE *program;
  +
        program = fopen(r->filename, "rt");
        if (!program) {
            ap_log_error(APLOG_MARK, APLOG_ERR, r->server, "fopen(%s) failed",
  -                     r->filename);
  +                      r->filename);
            return (pid);
        }
        fgets(interpreter, sizeof(interpreter), program);
  @@ -658,13 +723,14 @@
            char *emxtemp;
   
            /* For OS/2 place the variables in the current
  -          * enviornment then it will be inherited. This way
  +          * environment then it will be inherited. This way
             * the program will also get all of OS/2's other SETs.
             */
  -         for (emxloop = 0; ((emxtemp = env[emxloop]) != NULL); emxloop++)
  +         for (emxloop = 0; ((emxtemp = env[emxloop]) != NULL); emxloop++) {
                putenv(emxtemp);
  +         }
   
  -         /* Additions by Alec Kloss, to allow exec'ing of scripts under OS/2 
*/
  +         /* More additions by Alec Kloss for OS/2 */
            if (is_script) {
                /* here's the stuff to run the interpreter */
                execl(interpreter + 2, interpreter + 2, r->filename, NULL);
  @@ -686,26 +752,29 @@
             * environment so that they will be inherited. This way
             * the program will also get all of OS/2's other SETs.
             */
  -         for (emxloop = 0; ((emxtemp = env[emxloop]) != NULL); emxloop++)
  +         for (emxloop = 0; ((emxtemp = env[emxloop]) != NULL); emxloop++) {
                putenv(emxtemp);
  +         }
   
            if (strstr(strupr(r->filename), ".CMD") > 0) {
                /* Special case to allow use of REXX commands as scripts. */
                os2pathname(r->filename);
  -             execv(SHELL_PATH, create_argv_cmd(r->pool, argv0, r->args, 
r->filename));
  +             execv(SHELL_PATH, create_argv_cmd(r->pool, argv0, r->args,
  +                                               r->filename));
            }
  -         else
  +         else {
                execv(r->filename,
  -                 create_argv(r->pool, NULL, NULL, NULL, argv0, r->args));
  +                   create_argv(r->pool, NULL, NULL, NULL, argv0, r->args));
  +         }
        }
        return (pid);
       }
   #elif defined(WIN32)
       {
  -     /* Adapted from work by Alec Kloss, to allow exec'ing of scripts under 
OS/2 */
  +     /* Adapted from Alec Kloss' work for OS/2 */
        int is_script = 0;
        int is_binary = 0;
  -     char interpreter[2048]; /* hope this is large enough for the 
interpreter path */
  +     char interpreter[2048]; /* hope it's enough for the interpreter path */
        FILE *program;
        int i, sz;
        char *dot;
  @@ -723,32 +792,36 @@
        interpreter[0] = 0;
   
        exename = strrchr(r->filename, '/');
  -     if (!exename)
  +     if (!exename) {
            exename = strrchr(r->filename, '\\');
  -     if (!exename)
  +     }
  +     if (!exename) {
            exename = r->filename;
  -     else
  +     }
  +     else {
            exename++;
  +     }
        dot = strrchr(exename, '.');
        if (dot) {
  -         if (!strcasecmp(dot, ".BAT") ||
  -             !strcasecmp(dot, ".CMD") ||
  -             !strcasecmp(dot, ".EXE") ||
  -             !strcasecmp(dot, ".COM"))
  +         if (!strcasecmp(dot, ".BAT")
  +             || !strcasecmp(dot, ".CMD")
  +             || !strcasecmp(dot, ".EXE")
  +             ||  !strcasecmp(dot, ".COM")) {
                is_exe = 1;
  +         }
        }
   
        if (!is_exe) {
            program = fopen(r->filename, "rb");
            if (!program) {
                ap_log_error(APLOG_MARK, APLOG_ERR, r->server,
  -                         "fopen(%s) failed", r->filename);
  +                          "fopen(%s) failed", r->filename);
                return (pid);
            }
            sz = fread(interpreter, 1, sizeof(interpreter) - 1, program);
            if (sz < 0) {
                ap_log_error(APLOG_MARK, APLOG_ERR, r->server,
  -                         "fread of %s failed", r->filename);
  +                          "fread of %s failed", r->filename);
                fclose(program);
                return (pid);
            }
  @@ -757,9 +830,10 @@
            if (!strncmp(interpreter, "#!", 2)) {
                is_script = 1;
                for (i = 2; i < sizeof(interpreter); i++) {
  -                 if ((interpreter[i] == '\r') ||
  -                     (interpreter[i] == '\n'))
  +                 if ((interpreter[i] == '\r')
  +                     || (interpreter[i] == '\n')) {
                        break;
  +                 }
                }
                interpreter[i] = 0;
                for (i = 2; interpreter[i] == ' '; ++i)
  @@ -767,10 +841,11 @@
                memmove(interpreter+2,interpreter+i,strlen(interpreter+i)+1);
            }
            else {
  -                        /* Check to see if it's a executable */
  +             /* Check to see if it's a executable */
                   IMAGE_DOS_HEADER *hdr = (IMAGE_DOS_HEADER*)interpreter;
  -                if (hdr->e_magic == IMAGE_DOS_SIGNATURE && hdr->e_cblp < 512)
  +                if (hdr->e_magic == IMAGE_DOS_SIGNATURE && hdr->e_cblp < 
512) {
                       is_binary = 1;
  +             }
            }
        }
   
  @@ -935,10 +1010,10 @@
        return (pid);
       }
   #else
  -    if (ap_suexec_enabled &&
  -     ((r->server->server_uid != ap_user_id) ||
  -      (r->server->server_gid != ap_group_id) ||
  -      (!strncmp("/~", r->uri, 2)))) {
  +    if (ap_suexec_enabled
  +     && ((r->server->server_uid != ap_user_id)
  +         || (r->server->server_gid != ap_group_id)
  +         || (!strncmp("/~", r->uri, 2)))) {
   
        char *execuser, *grpname;
        struct passwd *pw;
  @@ -949,49 +1024,57 @@
            char *username = ap_pstrdup(r->pool, r->uri + 2);
            char *pos = strchr(username, '/');
   
  -         if (pos)
  +         if (pos) {
                *pos = '\0';
  +         }
   
            if ((pw = getpwnam(username)) == NULL) {
                ap_log_error(APLOG_MARK, APLOG_ERR, r->server,
  -                         "getpwnam: invalid username %s", username);
  +                          "getpwnam: invalid username %s", username);
                return (pid);
            }
            execuser = ap_pstrcat(r->pool, "~", pw->pw_name, NULL);
            user_gid = pw->pw_gid;
   
            if ((gr = getgrgid(user_gid)) == NULL) {
  -             if ((grpname = ap_palloc(r->pool, 16)) == NULL)
  +             if ((grpname = ap_palloc(r->pool, 16)) == NULL) {
                    return (pid);
  -             else
  +             }
  +             else {
                    ap_snprintf(grpname, 16, "%ld", (long) user_gid);
  +             }
            }
  -         else
  +         else {
                grpname = gr->gr_name;
  +         }
        }
        else {
            if ((pw = getpwuid(r->server->server_uid)) == NULL) {
                ap_log_error(APLOG_MARK, APLOG_ERR, r->server,
  -                         "getpwuid: invalid userid %ld",
  -                         (long) r->server->server_uid);
  +                          "getpwuid: invalid userid %ld",
  +                          (long) r->server->server_uid);
                return (pid);
            }
            execuser = ap_pstrdup(r->pool, pw->pw_name);
   
            if ((gr = getgrgid(r->server->server_gid)) == NULL) {
                ap_log_error(APLOG_MARK, APLOG_ERR, r->server,
  -                         "getgrgid: invalid groupid %ld",
  -                         (long) r->server->server_gid);
  +                          "getgrgid: invalid groupid %ld",
  +                          (long) r->server->server_gid);
                return (pid);
            }
            grpname = gr->gr_name;
        }
   
  -     if (shellcmd)
  -         execle(SUEXEC_BIN, SUEXEC_BIN, execuser, grpname, argv0, NULL, env);
  +     if (shellcmd) {
  +         execle(SUEXEC_BIN, SUEXEC_BIN, execuser, grpname, argv0,
  +                NULL, env);
  +     }
   
  -     else if ((!r->args) || (!r->args[0]) || strchr(r->args, '='))
  -         execle(SUEXEC_BIN, SUEXEC_BIN, execuser, grpname, argv0, NULL, env);
  +     else if ((!r->args) || (!r->args[0]) || strchr(r->args, '=')) {
  +         execle(SUEXEC_BIN, SUEXEC_BIN, execuser, grpname, argv0,
  +                NULL, env);
  +     }
   
        else {
            execve(SUEXEC_BIN,
  @@ -1001,16 +1084,19 @@
        }
       }
       else {
  -     if (shellcmd)
  +        if (shellcmd) {
            execle(SHELL_PATH, SHELL_PATH, "-c", argv0, NULL, env);
  +     }
   
  -     else if ((!r->args) || (!r->args[0]) || strchr(r->args, '='))
  +     else if ((!r->args) || (!r->args[0]) || strchr(r->args, '=')) {
            execle(r->filename, argv0, NULL, env);
  +     }
   
  -     else
  +     else {
            execve(r->filename,
                   create_argv(r->pool, NULL, NULL, NULL, argv0, r->args),
                   env);
  +     }
       }
       return (pid);
   #endif
  
  
  

Reply via email to