X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=apache-mod_fastcgi-apr1.patch;h=6c15d6cd31f65d014703782aee63cc3556453e52;hb=ebb9c1bc5be2d87fff97527524b097fd42e83337;hp=31e8724e04a427dadc6d532103992689c200ffff;hpb=18820dd552b931ee65258bf08224cdb45f2b5083;p=packages%2Fapache-mod_fastcgi.git diff --git a/apache-mod_fastcgi-apr1.patch b/apache-mod_fastcgi-apr1.patch index 31e8724..6c15d6c 100644 --- a/apache-mod_fastcgi-apr1.patch +++ b/apache-mod_fastcgi-apr1.patch @@ -1,6 +1,27 @@ +diff -urN mod_fastcgi-2.4.2.org/fcgi_buf.c mod_fastcgi-2.4.2/fcgi_buf.c +--- mod_fastcgi-2.4.2.org/fcgi_buf.c 2004-10-06 20:30:46.335894544 +0200 ++++ mod_fastcgi-2.4.2/fcgi_buf.c 2004-10-06 21:53:04.248062670 +0200 +@@ -50,7 +50,7 @@ + { + Buffer *buf; + +- buf = (Buffer *)ap_pcalloc(p, sizeof(Buffer) + size); ++ buf = (Buffer *)apr_pcalloc(p, sizeof(Buffer) + size); + buf->size = size; + fcgi_buf_reset(buf); + return buf; +@@ -487,7 +487,7 @@ + char *new_elts; + int new_nalloc = (arr->nalloc <= 0) ? n : arr->nelts + n; + +- new_elts = ap_pcalloc(arr->pool, arr->elt_size * new_nalloc); ++ new_elts = apr_pcalloc(arr->pool, arr->elt_size * new_nalloc); + memcpy(new_elts, arr->elts, arr->nelts * arr->elt_size); + + arr->elts = new_elts; diff -urN mod_fastcgi-2.4.2.org/fcgi_config.c mod_fastcgi-2.4.2/fcgi_config.c --- mod_fastcgi-2.4.2.org/fcgi_config.c 2004-10-06 20:30:46.336894330 +0200 -+++ mod_fastcgi-2.4.2/fcgi_config.c 2004-10-06 20:51:28.494791133 +0200 ++++ mod_fastcgi-2.4.2/fcgi_config.c 2004-10-06 21:53:04.253061599 +0200 @@ -50,7 +50,7 @@ /* Convert port number */ tmp = (u_short) strtol(portStr, &cvptr, 10); @@ -10,7 +31,7 @@ diff -urN mod_fastcgi-2.4.2.org/fcgi_config.c mod_fastcgi-2.4.2/fcgi_config.c *port = (unsigned short) tmp; -@@ -75,7 +75,7 @@ +@@ -75,11 +75,11 @@ tmp = strtol(txt, &ptr, 10); if (*ptr != '\0') { @@ -19,7 +40,12 @@ diff -urN mod_fastcgi-2.4.2.org/fcgi_config.c mod_fastcgi-2.4.2/fcgi_config.c } if (tmp < min || tmp > USHRT_MAX) { -@@ -101,7 +101,7 @@ +- return ap_psprintf(p, "\"%u\" must be >= %u and < %u", *num, min, USHRT_MAX); ++ return apr_psprintf(p, "\"%u\" must be >= %u and < %u", *num, min, USHRT_MAX); + } + + *num = (u_short) tmp; +@@ -101,11 +101,11 @@ if (*cp != '\0') { @@ -28,24 +54,35 @@ diff -urN mod_fastcgi-2.4.2.org/fcgi_config.c mod_fastcgi-2.4.2/fcgi_config.c } else if (*num < min) { -@@ -126,7 +126,7 @@ +- return ap_psprintf(p, "\"%d\" must be >= %d", *num, min); ++ return apr_psprintf(p, "\"%d\" must be >= %d", *num, min); + } + + return NULL; +@@ -126,9 +126,9 @@ *num = (u_int)strtol(val, &ptr, 10); if (*ptr != '\0') - return ap_pstrcat(p, "\"", val, "\" must be a positive integer", NULL); + return apr_pstrcat(p, "\"", val, "\" must be a positive integer", NULL); else if (*num < min) - return ap_psprintf(p, "\"%u\" must be >= %u", *num, min); +- return ap_psprintf(p, "\"%u\" must be >= %u", *num, min); ++ return apr_psprintf(p, "\"%u\" must be >= %u", *num, min); return NULL; -@@ -147,7 +147,7 @@ + } + +@@ -147,9 +147,9 @@ *num = (float) strtod(val, &ptr); if (*ptr != '\0') - return ap_pstrcat(p, "\"", val, "\" is not a floating point number", NULL); + return apr_pstrcat(p, "\"", val, "\" is not a floating point number", NULL); if (*num < min || *num > max) - return ap_psprintf(p, "\"%f\" is not between %f and %f", *num, min, max); +- return ap_psprintf(p, "\"%f\" is not between %f and %f", *num, min, max); ++ return apr_psprintf(p, "\"%f\" is not between %f and %f", *num, min, max); return NULL; + } + @@ -160,7 +160,7 @@ } @@ -55,16 +92,56 @@ diff -urN mod_fastcgi-2.4.2.org/fcgi_config.c mod_fastcgi-2.4.2/fcgi_config.c } else { *(envp + *envc) = var; -@@ -191,7 +191,7 @@ +@@ -191,10 +191,10 @@ const char **header; if (!*array) { - *array = ap_make_array(p, 10, sizeof(char*)); -+ *array = apr_make_array(p, 10, sizeof(char*)); ++ *array = apr_array_make(p, 10, sizeof(char*)); } - header = (const char **)ap_push_array(*array); -@@ -379,7 +379,7 @@ +- header = (const char **)ap_push_array(*array); ++ header = (const char **)apr_array_push(*array); + *header = ap_getword_conf(p, arg); + + return header ? NULL : "\"\""; +@@ -206,7 +206,7 @@ + static const char *invalid_value(pool *p, const char *cmd, const char *id, + const char *opt, const char *err) + { +- return ap_psprintf(p, "%s%s%s: invalid value for %s: %s", ++ return apr_psprintf(p, "%s%s%s: invalid value for %s: %s", + cmd, id ? " " : "", id ? id : "", opt, err); + } + +@@ -334,7 +334,7 @@ + if (mkdir(path, S_IRWXU) != 0) + #endif + { +- return ap_psprintf(tp, ++ return apr_psprintf(tp, + "doesn't exist and can't be created: %s", + strerror(errno)); + } +@@ -342,7 +342,7 @@ + #ifndef WIN32 + /* If we're root, we're gonna setuid/setgid so we need to chown */ + if (geteuid() == 0 && chown(path, ap_user_id, ap_group_id) != 0) { +- return ap_psprintf(tp, ++ return apr_psprintf(tp, + "can't chown() to the server (uid %ld, gid %ld): %s", + (long)ap_user_id, (long)ap_group_id, strerror(errno)); + } +@@ -361,7 +361,7 @@ + fcgi_user_id, fcgi_group_id); + #endif + if (err != NULL) { +- return ap_psprintf(tp, ++ return apr_psprintf(tp, + "access for server (uid %ld, gid %ld) failed: %s", + (long)fcgi_user_id, (long)fcgi_group_id, err); + } +@@ -379,10 +379,10 @@ const char *err; pool *tp; @@ -72,16 +149,22 @@ diff -urN mod_fastcgi-2.4.2.org/fcgi_config.c mod_fastcgi-2.4.2/fcgi_config.c + fcgi_dynamic_dir = apr_pstrcat(p, fcgi_socket_dir, "/dynamic", NULL); if ((err = fcgi_config_make_dir(p, fcgi_dynamic_dir))) - return ap_psprintf(p, "can't create dynamic directory \"%s\": %s", fcgi_dynamic_dir, err); -@@ -419,7 +419,7 @@ +- return ap_psprintf(p, "can't create dynamic directory \"%s\": %s", fcgi_dynamic_dir, err); ++ return apr_psprintf(p, "can't create dynamic directory \"%s\": %s", fcgi_dynamic_dir, err); + + /* Don't step on a running server unless its OK. */ + if (!wax) +@@ -419,8 +419,8 @@ dp = ap_popendir(tp, fcgi_dynamic_dir); if (dp == NULL) { - ap_destroy_pool(tp); -+ apr_destroy_pool(tp); - return ap_psprintf(p, "can't open dynamic directory \"%s\": %s", +- return ap_psprintf(p, "can't open dynamic directory \"%s\": %s", ++ apr_pool_destroy(tp); ++ return apr_psprintf(p, "can't open dynamic directory \"%s\": %s", fcgi_dynamic_dir, strerror(errno)); } + @@ -431,13 +431,13 @@ if (strcmp(dirp->d_name, ".") == 0 || strcmp(dirp->d_name, "..") == 0) continue; @@ -94,11 +177,52 @@ diff -urN mod_fastcgi-2.4.2.org/fcgi_config.c mod_fastcgi-2.4.2/fcgi_config.c #endif /* !APACHE2 */ - ap_destroy_pool(tp); -+ apr_destroy_pool(tp); ++ apr_pool_destroy(tp); return NULL; } -@@ -498,7 +498,7 @@ +@@ -461,27 +461,27 @@ + } + + if (fcgi_socket_dir) { +- return ap_psprintf(tp, "%s %s: already defined as \"%s\"", ++ return apr_psprintf(tp, "%s %s: already defined as \"%s\"", + name, arg, fcgi_socket_dir); + } + + err = fcgi_config_set_fcgi_uid_n_gid(1); + if (err != NULL) +- return ap_psprintf(tp, "%s %s: %s", name, arg, err); ++ return apr_psprintf(tp, "%s %s: %s", name, arg, err); + + if (fcgi_servers != NULL) { +- return ap_psprintf(tp, ++ return apr_psprintf(tp, + "The %s command must preceed static FastCGI server definitions", + name); + } + +- arg_nc = ap_pstrdup(cmd->pool, arg); ++ arg_nc = apr_pstrdup(cmd->pool, arg); + + #ifndef WIN32 + + #ifdef APACHE2 + if (apr_filepath_merge(&arg_nc, "", arg, 0, cmd->pool)) +- return ap_psprintf(tp, "%s %s: invalid filepath", name, arg); ++ return apr_psprintf(tp, "%s %s: invalid filepath", name, arg); + #else + arg_nc = ap_os_canonical_filename(cmd->pool, arg_nc); + #endif +@@ -491,22 +491,22 @@ + #else /* WIN32 */ + + if (strncmp(arg_nc, "\\\\.\\pipe\\", 9) != 0) +- return ap_psprintf(tp, "%s %s is invalid format",name, arg_nc); ++ return apr_psprintf(tp, "%s %s is invalid format",name, arg_nc); + + #endif + fcgi_socket_dir = arg_nc; #ifdef WIN32 @@ -107,7 +231,211 @@ diff -urN mod_fastcgi-2.4.2.org/fcgi_config.c mod_fastcgi-2.4.2/fcgi_config.c #else err = fcgi_config_make_dir(tp, fcgi_socket_dir); if (err != NULL) -@@ -853,7 +853,7 @@ +- return ap_psprintf(tp, "%s %s: %s", name, arg_nc, err); ++ return apr_psprintf(tp, "%s %s: %s", name, arg_nc, err); + + err = fcgi_config_make_dynamic_dir(cmd->pool, 0); + if (err != NULL) +- return ap_psprintf(tp, "%s %s: %s", name, arg_nc, err); ++ return apr_psprintf(tp, "%s %s: %s", name, arg_nc, err); + #endif + + return NULL; +@@ -519,7 +519,7 @@ + const char *fcgi_config_set_wrapper(cmd_parms *cmd, void *dummy, const char *arg) + { + #ifdef WIN32 +- return ap_psprintf(cmd->temp_pool, ++ return apr_psprintf(cmd->temp_pool, + "the %s directive is not supported on WIN", cmd->cmd->name); + #else + +@@ -536,16 +536,16 @@ + + if (fcgi_wrapper) + { +- return ap_psprintf(tp, "%s was already set to \"%s\"", ++ return apr_psprintf(tp, "%s was already set to \"%s\"", + name, fcgi_wrapper); + } + + err = fcgi_config_set_fcgi_uid_n_gid(1); + if (err != NULL) +- return ap_psprintf(tp, "%s %s: %s", name, arg, err); ++ return apr_psprintf(tp, "%s %s: %s", name, arg, err); + + if (fcgi_servers != NULL) { +- return ap_psprintf(tp, ++ return apr_psprintf(tp, + "The %s command must preceed static FastCGI server definitions", name); + } + +@@ -562,7 +562,7 @@ + { + #ifdef APACHE2 + if (apr_filepath_merge(&wrapper, "", arg, 0, cmd->pool)) +- return ap_psprintf(tp, "%s %s: invalid filepath", name, arg); ++ return apr_psprintf(tp, "%s %s: invalid filepath", name, arg); + #else + wrapper = ap_os_canonical_filename(cmd->pool, (char *) arg); + #endif +@@ -573,7 +573,7 @@ + err = fcgi_util_check_access(tp, wrapper, NULL, X_OK, fcgi_user_id, fcgi_group_id); + if (err) + { +- return ap_psprintf(tp, "%s: \"%s\" execute access for server " ++ return apr_psprintf(tp, "%s: \"%s\" execute access for server " + "(uid %ld, gid %ld) failed: %s", name, wrapper, + (long) fcgi_user_id, (long) fcgi_group_id, err); + } +@@ -596,7 +596,7 @@ + const char *option, *err; + + /* Allocate temp storage for the array of initial environment variables */ +- char **envp = ap_pcalloc(tp, sizeof(char *) * (MAX_INIT_ENV_VARS + 3)); ++ char **envp = apr_pcalloc(tp, sizeof(char *) * (MAX_INIT_ENV_VARS + 3)); + unsigned int envc = 0; + + #ifdef WIN32 +@@ -613,11 +613,11 @@ + return "AppClass requires a pathname!?"; + + if ((err = fcgi_config_set_fcgi_uid_n_gid(1)) != NULL) +- return ap_psprintf(tp, "%s %s: %s", name, fs_path, err); ++ return apr_psprintf(tp, "%s %s: %s", name, fs_path, err); + + #ifdef APACHE2 + if (apr_filepath_merge(&fs_path, "", fs_path, 0, p)) +- return ap_psprintf(tp, "%s %s: invalid filepath", name, fs_path); ++ return apr_psprintf(tp, "%s %s: invalid filepath", name, fs_path); + #else + fs_path = ap_os_canonical_filename(p, fs_path); + #endif +@@ -631,14 +631,14 @@ + fcgi_util_get_server_gid(cmd->server)); + if (s != NULL) { + if (fcgi_wrapper) { +- return ap_psprintf(tp, ++ return apr_psprintf(tp, + "%s: redefinition of a previously defined FastCGI " + "server \"%s\" with uid=%ld and gid=%ld", + name, fs_path, (long) fcgi_util_get_server_uid(cmd->server), + (long) fcgi_util_get_server_gid(cmd->server)); + } + else { +- return ap_psprintf(tp, ++ return apr_psprintf(tp, + "%s: redefinition of a previously defined FastCGI server \"%s\"", + name, fs_path); + } +@@ -646,7 +646,7 @@ + + err = fcgi_util_fs_is_path_ok(tp, fs_path, NULL); + if (err != NULL) { +- return ap_psprintf(tp, "%s: \"%s\" %s", name, fs_path, err); ++ return apr_psprintf(tp, "%s: \"%s\" %s", name, fs_path, err); + } + + s = fcgi_util_fs_new(p); +@@ -672,7 +672,7 @@ + + SetHandleInformation(mutex, HANDLE_FLAG_INHERIT, TRUE); + +- s->mutex_env_string = ap_psprintf(p, "_FCGI_MUTEX_=%ld", mutex); ++ s->mutex_env_string = apr_psprintf(p, "_FCGI_MUTEX_=%ld", mutex); + + #endif + +@@ -730,7 +730,7 @@ + } + else if (strcasecmp(option, "-user") == 0) { + #ifdef WIN32 +- return ap_psprintf(tp, ++ return apr_psprintf(tp, + "%s %s: the -user option isn't supported on WIN", name, fs_path); + #else + s->user = ap_getword_conf(tp, &arg); +@@ -740,7 +740,7 @@ + } + else if (strcasecmp(option, "-group") == 0) { + #ifdef WIN32 +- return ap_psprintf(tp, ++ return apr_psprintf(tp, + "%s %s: the -group option isn't supported on WIN", name, fs_path); + #else + s->group = ap_getword_conf(tp, &arg); +@@ -749,7 +749,7 @@ + #endif + } + else { +- return ap_psprintf(tp, "%s %s: invalid option: %s", name, fs_path, option); ++ return apr_psprintf(tp, "%s %s: invalid option: %s", name, fs_path, option); + } + } /* while */ + +@@ -758,12 +758,12 @@ + { + if (s->group == NULL) + { +- s->group = ap_psprintf(tp, "#%ld", fcgi_util_get_server_gid(cmd->server)); ++ s->group = apr_psprintf(tp, "#%ld", fcgi_util_get_server_gid(cmd->server)); + } + + if (s->user == NULL) + { +- s->user = ap_psprintf(p, "#%ld", fcgi_util_get_server_uid(cmd->server)); ++ s->user = apr_psprintf(p, "#%ld", fcgi_util_get_server_uid(cmd->server)); + } + + s->uid = ap_uname2id(s->user); +@@ -777,19 +777,19 @@ + + if ((err = fcgi_util_fs_set_uid_n_gid(p, s, s->uid, s->gid))) + { +- return ap_psprintf(tp, ++ return apr_psprintf(tp, + "%s %s: invalid user or group: %s", name, fs_path, err); + } + #endif /* !WIN32 */ + + if (s->socket_path != NULL && s->port != 0) { +- return ap_psprintf(tp, ++ return apr_psprintf(tp, + "%s %s: -port and -socket are mutually exclusive options", + name, fs_path); + } + + /* Move env array to a surviving pool */ +- s->envp = (char **)ap_pcalloc(p, sizeof(char *) * (envc + 4)); ++ s->envp = (char **)apr_pcalloc(p, sizeof(char *) * (envc + 4)); + memcpy(s->envp, envp, sizeof(char *) * envc); + + /* Initialize process structs */ +@@ -800,12 +800,12 @@ + err = fcgi_util_socket_make_inet_addr(p, (struct sockaddr_in **)&s->socket_addr, + &s->socket_addr_len, NULL, s->port); + if (err != NULL) +- return ap_psprintf(tp, "%s %s: %s", name, fs_path, err); ++ return apr_psprintf(tp, "%s %s: %s", name, fs_path, err); + #ifdef WIN32 + err = fcgi_util_socket_make_inet_addr(p, (struct sockaddr_in **)&s->dest_addr, + &s->socket_addr_len, "localhost", s->port); + if (err != NULL) +- return ap_psprintf(tp, "%s %s: %s", name, fs_path, err); ++ return apr_psprintf(tp, "%s %s: %s", name, fs_path, err); + #endif + } else { + if (s->socket_path == NULL) +@@ -825,7 +825,7 @@ + err = fcgi_util_socket_make_domain_addr(p, (struct sockaddr_un **)&s->socket_addr, + &s->socket_addr_len, s->socket_path); + if (err != NULL) +- return ap_psprintf(tp, "%s %s: %s", name, fs_path, err); ++ return apr_psprintf(tp, "%s %s: %s", name, fs_path, err); + #endif + } + +@@ -853,12 +853,12 @@ } if (!*fs_path) { @@ -116,24 +444,232 @@ diff -urN mod_fastcgi-2.4.2.org/fcgi_config.c mod_fastcgi-2.4.2/fcgi_config.c } #ifdef APACHE2 + if (apr_filepath_merge(&fs_path, "", fs_path, 0, p)) +- return ap_psprintf(tp, "%s %s: invalid filepath", name, fs_path); ++ return apr_psprintf(tp, "%s %s: invalid filepath", name, fs_path); + #else + fs_path = ap_os_canonical_filename(p, fs_path); + #endif +@@ -873,7 +873,7 @@ + fcgi_util_get_server_gid(cmd->server)); + if (s != NULL) { + if (fcgi_wrapper) { +- return ap_psprintf(tp, ++ return apr_psprintf(tp, + "%s: redefinition of a previously defined class \"%s\" " + "with uid=%ld and gid=%ld", + name, fs_path, (long) fcgi_util_get_server_uid(cmd->server), +@@ -881,7 +881,7 @@ + } + else + { +- return ap_psprintf(tp, ++ return apr_psprintf(tp, + "%s: redefinition of previously defined class \"%s\"", name, fs_path); + } + } +@@ -920,7 +920,7 @@ + } + else if (strcasecmp(option, "-user") == 0) { + #ifdef WIN32 +- return ap_psprintf(tp, ++ return apr_psprintf(tp, + "%s %s: the -user option isn't supported on WIN", name, fs_path); + #else + s->user = ap_getword_conf(tp, &arg); +@@ -930,7 +930,7 @@ + } + else if (strcasecmp(option, "-group") == 0) { + #ifdef WIN32 +- return ap_psprintf(tp, ++ return apr_psprintf(tp, + "%s %s: the -group option isn't supported on WIN", name, fs_path); + #else + s->group = ap_getword_conf(tp, &arg); +@@ -939,7 +939,7 @@ + #endif + } + else { +- return ap_psprintf(tp, "%s %s: invalid option: %s", name, fs_path, option); ++ return apr_psprintf(tp, "%s %s: invalid option: %s", name, fs_path, option); + } + } /* while */ + +@@ -949,12 +949,12 @@ + { + if (s->group == NULL) + { +- s->group = ap_psprintf(tp, "#%ld", fcgi_util_get_server_gid(cmd->server)); ++ s->group = apr_psprintf(tp, "#%ld", fcgi_util_get_server_gid(cmd->server)); + } + + if (s->user == NULL) + { +- s->user = ap_psprintf(p, "#%ld", fcgi_util_get_server_uid(cmd->server)); ++ s->user = apr_psprintf(p, "#%ld", fcgi_util_get_server_uid(cmd->server)); + } + + s->uid = ap_uname2id(s->user); +@@ -968,19 +968,19 @@ + + if ((err = fcgi_util_fs_set_uid_n_gid(p, s, s->uid, s->gid))) + { +- return ap_psprintf(tp, ++ return apr_psprintf(tp, + "%s %s: invalid user or group: %s", name, fs_path, err); + } + #endif /* !WIN32 */ + + /* Require one of -socket or -host, but not both */ + if (s->socket_path != NULL && s->port != 0) { +- return ap_psprintf(tp, ++ return apr_psprintf(tp, + "%s %s: -host and -socket are mutually exclusive options", + name, fs_path); + } + if (s->socket_path == NULL && s->port == 0) { +- return ap_psprintf(tp, ++ return apr_psprintf(tp, + "%s %s: -socket or -host option missing", name, fs_path); + } + +@@ -989,7 +989,7 @@ + err = fcgi_util_socket_make_inet_addr(p, (struct sockaddr_in **)&s->socket_addr, + &s->socket_addr_len, s->host, s->port); + if (err != NULL) +- return ap_psprintf(tp, "%s %s: %s", name, fs_path, err); ++ return apr_psprintf(tp, "%s %s: %s", name, fs_path, err); + } else { + + if (fcgi_socket_dir == NULL) +@@ -1006,7 +1006,7 @@ + err = fcgi_util_socket_make_domain_addr(p, (struct sockaddr_un **)&s->socket_addr, + &s->socket_addr_len, s->socket_path); + if (err != NULL) +- return ap_psprintf(tp, "%s %s: %s", name, fs_path, err); ++ return apr_psprintf(tp, "%s %s: %s", name, fs_path, err); + #endif + } + +@@ -1037,7 +1037,7 @@ + + /* Allocate temp storage for an initial environment */ + unsigned int envc = 0; +- char **envp = (char **)ap_pcalloc(tp, sizeof(char *) * (MAX_INIT_ENV_VARS + 3)); ++ char **envp = (char **)apr_pcalloc(tp, sizeof(char *) * (MAX_INIT_ENV_VARS + 3)); + + err = ap_check_cmd_context(cmd, GLOBAL_ONLY); + if (err) +@@ -1131,20 +1131,20 @@ + dynamicFlush = TRUE; + } + else { +- return ap_psprintf(tp, "%s: invalid option: %s", name, option); ++ return apr_psprintf(tp, "%s: invalid option: %s", name, option); + } + } /* while */ + + if (dynamicProcessSlack >= dynamicMaxProcs + 1) { + /* the kill policy would work unexpectedly */ +- return ap_psprintf(tp, ++ return apr_psprintf(tp, + "%s: processSlack (%u) must be less than maxProcesses (%u) + 1", + name, dynamicProcessSlack, dynamicMaxProcs); + } + + /* Move env array to a surviving pool, leave 2 extra slots for + * WIN32 _FCGI_MUTEX_ and _FCGI_SHUTDOWN_EVENT_ */ +- dynamicEnvp = (char **)ap_pcalloc(p, sizeof(char *) * (envc + 4)); ++ dynamicEnvp = (char **)apr_pcalloc(p, sizeof(char *) * (envc + 4)); + memcpy(dynamicEnvp, envp, sizeof(char *) * envc); + + return NULL; +@@ -1152,7 +1152,7 @@ + + void *fcgi_config_create_dir_config(pool *p, char *dummy) + { +- fcgi_dir_config *dir_config = ap_pcalloc(p, sizeof(fcgi_dir_config)); ++ fcgi_dir_config *dir_config = apr_pcalloc(p, sizeof(fcgi_dir_config)); + + dir_config->authenticator_options = FCGI_AUTHORITATIVE; + dir_config->authorizer_options = FCGI_AUTHORITATIVE; +@@ -1171,7 +1171,7 @@ + + #ifdef APACHE2 + if (apr_filepath_merge(&auth_server, "", fs_path, 0, cmd->pool)) +- return ap_psprintf(tp, "%s %s: invalid filepath", cmd->cmd->name, fs_path); ++ return apr_psprintf(tp, "%s %s: invalid filepath", cmd->cmd->name, fs_path); + #else + auth_server = (char *) ap_os_canonical_filename(cmd->pool, fs_path); + #endif +@@ -1184,11 +1184,11 @@ + { + const char *err = fcgi_util_fs_is_path_ok(tp, auth_server, NULL); + if (err) +- return ap_psprintf(tp, "%s: \"%s\" %s", cmd->cmd->name, auth_server, err); ++ return apr_psprintf(tp, "%s: \"%s\" %s", cmd->cmd->name, auth_server, err); + } + + if (compat && strcasecmp(compat, "-compat")) +- return ap_psprintf(cmd->temp_pool, "%s: unknown option: \"%s\"", cmd->cmd->name, compat); ++ return apr_psprintf(cmd->temp_pool, "%s: unknown option: \"%s\"", cmd->cmd->name, compat); + + switch((int)cmd->info) { + case FCGI_AUTH_TYPE_AUTHENTICATOR: diff -urN mod_fastcgi-2.4.2.org/fcgi_pm.c mod_fastcgi-2.4.2/fcgi_pm.c --- mod_fastcgi-2.4.2.org/fcgi_pm.c 2004-10-06 20:30:46.337894116 +0200 -+++ mod_fastcgi-2.4.2/fcgi_pm.c 2004-10-06 20:51:28.505788777 +0200 ++++ mod_fastcgi-2.4.2/fcgi_pm.c 2004-10-06 21:53:04.263059457 +0200 +@@ -225,7 +225,7 @@ + #ifdef WIN32 + errno = WSAGetLastError(); + #endif +- ap_snprintf(port, sizeof(port), "port=%d", ++ apr_snprintf(port, sizeof(port), "port=%d", + ((struct sockaddr_in *)fs->socket_addr)->sin_port); + + ap_log_error(FCGI_LOG_CRIT_ERRNO, fcgi_apache_main_server, +@@ -365,7 +365,7 @@ + if (dnEnd == NULL) { + dirName = "./"; + } else { +- dirName = ap_pcalloc(fcgi_config_pool, dnEnd - fs->fs_path + 1); ++ dirName = apr_pcalloc(fcgi_config_pool, dnEnd - fs->fs_path + 1); + dirName = memcpy(dirName, fs->fs_path, dnEnd - fs->fs_path); + } + if (chdir(dirName) < 0) { +@@ -489,7 +489,7 @@ + + SetHandleInformation(process->terminationEvent, HANDLE_FLAG_INHERIT, TRUE); + +- termination_env_string = ap_psprintf(tp, ++ termination_env_string = apr_psprintf(tp, + "_FCGI_SHUTDOWN_EVENT_=%ld", process->terminationEvent); + + while (fs->envp[i]) i++; @@ -576,7 +576,7 @@ fs->envp[i - 1] = NULL; } - ap_destroy_pool(tp); -+ apr_destroy_pool(tp); ++ apr_pool_destroy(tp); return proc.pid; +@@ -614,7 +614,7 @@ + } + SetHandleInformation(process->terminationEvent, HANDLE_FLAG_INHERIT, TRUE); + +- termination_env_string = ap_psprintf(tp, ++ termination_env_string = apr_psprintf(tp, + "_FCGI_SHUTDOWN_EVENT_=%ld", process->terminationEvent); + + if (fs->socket_path) @@ -659,7 +659,7 @@ "FastCGI: %s is not executable; ensure interpreted scripts have " "\"#!\" as their first line", fs->fs_path); - ap_destroy_pool(tp); -+ apr_destroy_pool(tp); ++ apr_pool_destroy(tp); goto CLEANUP; } @@ -149,21 +685,82 @@ diff -urN mod_fastcgi-2.4.2.org/fcgi_pm.c mod_fastcgi-2.4.2/fcgi_pm.c } else { pCommand = quoted_filename; +@@ -704,7 +704,7 @@ + iEnvBlockLen += strlen(termination_env_string) + 1; + iEnvBlockLen += strlen(fs->mutex_env_string) + 1; + +- pEnvBlock = (char *) ap_pcalloc(tp, iEnvBlockLen); ++ pEnvBlock = (char *) apr_pcalloc(tp, iEnvBlockLen); + + i = 0; + pNext = pEnvBlock; @@ -744,7 +744,7 @@ CloseHandle(listen_handle); } - ap_destroy_pool(tp); -+ apr_destroy_pool(tp); ++ apr_pool_destroy(tp); return pid; +@@ -1071,10 +1071,10 @@ + s->flush = dynamicFlush; + + #ifdef WIN32 +- s->mutex_env_string = ap_psprintf(sp, "_FCGI_MUTEX_=%ld", mutex); +- s->fs_path = ap_pstrdup(sp, cjob->fs_path); ++ s->mutex_env_string = apr_psprintf(sp, "_FCGI_MUTEX_=%ld", mutex); ++ s->fs_path = apr_pstrdup(sp, cjob->fs_path); + #else +- s->fs_path = ap_pstrdup(sp, execName); ++ s->fs_path = apr_pstrdup(sp, execName); + #endif + ap_getparents(s->fs_path); + ap_no2slash(s->fs_path); +@@ -1094,7 +1094,7 @@ + s->socket_path = fcgi_util_socket_make_path_absolute(sp, s->socket_path, 1); + + /* Create sockaddr, prealloc it so it won't get created in tp */ +- s->socket_addr = ap_pcalloc(sp, sizeof(struct sockaddr_un)); ++ s->socket_addr = apr_pcalloc(sp, sizeof(struct sockaddr_un)); + err = fcgi_util_socket_make_domain_addr(tp, (struct sockaddr_un **)&s->socket_addr, + &s->socket_addr_len, s->socket_path); + if (err) { +@@ -1120,11 +1120,11 @@ + goto BagNewServer; + } + s->uid = pw->pw_uid; +- s->user = ap_pstrdup(sp, user); ++ s->user = apr_pstrdup(sp, user); + s->username = s->user; + + s->gid = pw->pw_gid; +- s->group = ap_psprintf(sp, "%ld", (long)s->gid); ++ s->group = apr_psprintf(sp, "%ld", (long)s->gid); + } + else { + struct passwd *pw; +@@ -1137,11 +1137,11 @@ + execName, (long)s->uid); + goto BagNewServer; + } +- s->user = ap_pstrdup(sp, user); +- s->username = ap_pstrdup(sp, pw->pw_name); ++ s->user = apr_pstrdup(sp, user); ++ s->username = apr_pstrdup(sp, pw->pw_name); + + s->gid = (gid_t)atol(group); +- s->group = ap_pstrdup(sp, group); ++ s->group = apr_pstrdup(sp, group); + } + } + #else @@ -1340,7 +1340,7 @@ continue; BagNewServer: - if (sp) ap_destroy_pool(sp); -+ if (sp) apr_destroy_pool(sp); ++ if (sp) apr_pool_destroy(sp); #ifdef WIN32 free(cjob->fs_path); @@ -172,13 +769,40 @@ diff -urN mod_fastcgi-2.4.2.org/fcgi_pm.c mod_fastcgi-2.4.2/fcgi_pm.c #endif - ap_destroy_pool(tp); -+ apr_destroy_pool(tp); ++ apr_pool_destroy(tp); } /* diff -urN mod_fastcgi-2.4.2.org/fcgi_protocol.c mod_fastcgi-2.4.2/fcgi_protocol.c --- mod_fastcgi-2.4.2.org/fcgi_protocol.c 2004-10-06 20:30:46.338893902 +0200 -+++ mod_fastcgi-2.4.2/fcgi_protocol.c 2004-10-06 20:51:28.507788348 +0200 ++++ mod_fastcgi-2.4.2/fcgi_protocol.c 2004-10-06 21:53:04.266058814 +0200 +@@ -110,21 +110,21 @@ + char *first, *last; + + if (r->the_request == NULL) +- return (char *) ap_pcalloc(r->pool, 1); ++ return (char *) apr_pcalloc(r->pool, 1); + + first = r->the_request; /* use the request-line */ + +- while (*first && !ap_isspace(*first)) ++ while (*first && !apr_isspace(*first)) + ++first; /* skip over the method */ + +- while (ap_isspace(*first)) ++ while (apr_isspace(*first)) + ++first; /* and the space(s) */ + + last = first; +- while (*last && !ap_isspace(*last)) ++ while (*last && !apr_isspace(*last)) + ++last; /* end at next whitespace */ + +- return ap_pstrndup(r->pool, first, last - first); ++ return apr_pstrndup(r->pool, first, last - first); + } + + /* Based on Apache's ap_add_cgi_vars() in util_script.c. @@ -135,18 +135,18 @@ { table *e = r->subprocess_env; @@ -222,7 +846,7 @@ diff -urN mod_fastcgi-2.4.2.org/fcgi_protocol.c mod_fastcgi-2.4.2/fcgi_protocol. - ap_table_setn(e, "SCRIPT_NAME", ap_pstrndup(r->pool, r->uri, path_info_start)); - ap_table_setn(e, "PATH_INFO", r->path_info); -+ apr_table_setn(e, "SCRIPT_NAME", ap_pstrndup(r->pool, r->uri, path_info_start)); ++ apr_table_setn(e, "SCRIPT_NAME", apr_pstrndup(r->pool, r->uri, path_info_start)); + apr_table_setn(e, "PATH_INFO", r->path_info); } } @@ -250,7 +874,7 @@ diff -urN mod_fastcgi-2.4.2.org/fcgi_protocol.c mod_fastcgi-2.4.2/fcgi_protocol. /* We're gonna consume all thats here */ diff -urN mod_fastcgi-2.4.2.org/fcgi_util.c mod_fastcgi-2.4.2/fcgi_util.c --- mod_fastcgi-2.4.2.org/fcgi_util.c 2004-10-06 20:30:46.339893687 +0200 -+++ mod_fastcgi-2.4.2/fcgi_util.c 2004-10-06 20:51:28.511787491 +0200 ++++ mod_fastcgi-2.4.2/fcgi_util.c 2004-10-06 21:53:04.270057958 +0200 @@ -55,7 +55,7 @@ fcgi_util_socket_hash_filename(pool *p, const char *path, const char *user, const char *group) @@ -277,7 +901,7 @@ diff -urN mod_fastcgi-2.4.2.org/fcgi_util.c mod_fastcgi-2.4.2/fcgi_util.c } q = p ; -@@ -137,7 +137,7 @@ +@@ -137,12 +137,12 @@ int socket_pathLen = strlen(socket_path); if (socket_pathLen >= sizeof((*socket_addr)->sun_path)) { @@ -286,6 +910,21 @@ diff -urN mod_fastcgi-2.4.2.org/fcgi_util.c mod_fastcgi-2.4.2/fcgi_util.c "\" is too long for a Domain socket", NULL); } + if (*socket_addr == NULL) +- *socket_addr = ap_pcalloc(p, sizeof(struct sockaddr_un)); ++ *socket_addr = apr_pcalloc(p, sizeof(struct sockaddr_un)); + else + memset(*socket_addr, 0, sizeof(struct sockaddr_un)); + +@@ -194,7 +194,7 @@ + int *socket_addr_len, const char *host, unsigned short port) + { + if (*socket_addr == NULL) +- *socket_addr = ap_pcalloc(p, sizeof(struct sockaddr_in)); ++ *socket_addr = apr_pcalloc(p, sizeof(struct sockaddr_in)); + else + memset(*socket_addr, 0, sizeof(struct sockaddr_in)); + @@ -204,7 +204,7 @@ /* Get an in_addr represention of the host */ if (host != NULL) { @@ -295,24 +934,118 @@ diff -urN mod_fastcgi-2.4.2.org/fcgi_util.c mod_fastcgi-2.4.2/fcgi_util.c "\" to exactly one IP address", NULL); } } else { -@@ -367,7 +367,7 @@ +@@ -227,7 +227,7 @@ + + if (statBuf == NULL) { + if (stat(path, &myStatBuf) < 0) +- return ap_psprintf(tp, "stat(%s) failed: %s", path, strerror(errno)); ++ return apr_psprintf(tp, "stat(%s) failed: %s", path, strerror(errno)); + statBuf = &myStatBuf; + } + +@@ -311,7 +311,7 @@ + fcgi_server *s; + + /* @@@ This should now be done in the loop below */ +- ap_cpystrn(path, ePath, FCGI_MAXPATH); ++ apr_cpystrn(path, ePath, FCGI_MAXPATH); + ap_no2slash(path); + + for (s = fcgi_servers; s != NULL; s = s->next) { +@@ -343,7 +343,7 @@ + char path[FCGI_MAXPATH]; + fcgi_server *s; + +- ap_cpystrn(path, ePath, FCGI_MAXPATH); ++ apr_cpystrn(path, ePath, FCGI_MAXPATH); + ap_no2slash(path); + + for (s = fcgi_servers; s != NULL; s = s->next) { +@@ -367,16 +367,16 @@ const char *err; if (finfo == NULL) { - finfo = (struct stat *)ap_palloc(p, sizeof(struct stat)); + finfo = (struct stat *)apr_palloc(p, sizeof(struct stat)); if (stat(fs_path, finfo) < 0) - return ap_psprintf(p, "stat(%s) failed: %s", fs_path, strerror(errno)); +- return ap_psprintf(p, "stat(%s) failed: %s", fs_path, strerror(errno)); ++ return apr_psprintf(p, "stat(%s) failed: %s", fs_path, strerror(errno)); + } + + if (finfo->st_mode == 0) +- return ap_psprintf(p, "script not found or unable to stat()"); ++ return apr_psprintf(p, "script not found or unable to stat()"); + + if (S_ISDIR(finfo->st_mode)) +- return ap_psprintf(p, "script is a directory!"); ++ return apr_psprintf(p, "script is a directory!"); + + /* Let the wrapper determine what it can and can't execute */ + if (! fcgi_wrapper) +@@ -392,7 +392,7 @@ + err = fcgi_util_check_access(p, fs_path, finfo, X_OK, fcgi_user_id, fcgi_group_id); + #endif + if (err) { +- return ap_psprintf(p, ++ return apr_psprintf(p, + "access for server (uid %ld, gid %ld) not allowed: %s", + (long)fcgi_user_id, (long)fcgi_group_id, err); + } +@@ -409,7 +409,7 @@ + fcgi_server * + fcgi_util_fs_new(pool *p) + { +- fcgi_server *s = (fcgi_server *) ap_pcalloc(p, sizeof(fcgi_server)); ++ fcgi_server *s = (fcgi_server *) apr_pcalloc(p, sizeof(fcgi_server)); + + /* Initialize anything who's init state is not zeroizzzzed */ + s->listenQueueDepth = FCGI_DEFAULT_LISTEN_Q; +@@ -462,23 +462,23 @@ + s->uid = uid; + pw = getpwuid(uid); + if (pw == NULL) { +- return ap_psprintf(p, ++ return apr_psprintf(p, + "getpwuid() couldn't determine the username for uid '%ld', " + "you probably need to modify the User directive: %s", + (long)uid, strerror(errno)); + } +- s->user = ap_pstrdup(p, pw->pw_name); ++ s->user = apr_pstrdup(p, pw->pw_name); + s->username = s->user; + + s->gid = gid; + gr = getgrgid(gid); + if (gr == NULL) { +- return ap_psprintf(p, ++ return apr_psprintf(p, + "getgrgid() couldn't determine the group name for gid '%ld', " + "you probably need to modify the Group directive: %s", + (long)gid, strerror(errno)); } +- s->group = ap_pstrdup(p, gr->gr_name); ++ s->group = apr_pstrdup(p, gr->gr_name); + + #endif /* !WIN32 */ + +@@ -492,7 +492,7 @@ + fcgi_util_fs_create_procs(pool *p, int num) + { + int i; +- ServerProcess *proc = (ServerProcess *)ap_pcalloc(p, sizeof(ServerProcess) * num); ++ ServerProcess *proc = (ServerProcess *)apr_pcalloc(p, sizeof(ServerProcess) * num); + + for (i = 0; i < num; i++) { + #ifdef WIN32 diff -urN mod_fastcgi-2.4.2.org/mod_fastcgi.c mod_fastcgi-2.4.2/mod_fastcgi.c --- mod_fastcgi-2.4.2.org/mod_fastcgi.c 2004-10-06 20:30:46.355890260 +0200 -+++ mod_fastcgi-2.4.2/mod_fastcgi.c 2004-10-06 20:51:28.526784279 +0200 ++++ mod_fastcgi-2.4.2/mod_fastcgi.c 2004-10-06 21:53:04.284054959 +0200 @@ -267,7 +267,7 @@ /* Register to reset to default values when the config pool is cleaned */ ap_block_alarms(); - ap_register_cleanup(p, NULL, fcgi_config_reset_globals, ap_null_cleanup); -+ ap_register_cleanup(p, NULL, fcgi_config_reset_globals, apr_pool_cleanup_null); ++ apr_pool_cleanup_register(p, NULL, fcgi_config_reset_globals, apr_pool_cleanup_null); ap_unblock_alarms(); #ifdef APACHE2 @@ -325,6 +1058,49 @@ diff -urN mod_fastcgi-2.4.2.org/mod_fastcgi.c mod_fastcgi-2.4.2/mod_fastcgi.c #else if (fcgi_socket_dir == NULL) +@@ -722,11 +722,11 @@ + } + if (statusValue < 0) { + fr->parseHeader = SCAN_CGI_BAD_HEADER; +- return ap_psprintf(r->pool, "invalid Status '%s'", value); ++ return apr_psprintf(r->pool, "invalid Status '%s'", value); + } + hasStatus = TRUE; + r->status = statusValue; +- r->status_line = ap_pstrdup(r->pool, value); ++ r->status_line = apr_pstrdup(r->pool, value); + continue; + } + +@@ -738,7 +738,7 @@ + #ifdef APACHE2 + ap_set_content_type(r, value); + #else +- r->content_type = ap_pstrdup(r->pool, value); ++ r->content_type = apr_pstrdup(r->pool, value); + #endif + continue; + } +@@ -745,16 +745,16 @@ + goto DuplicateNotAllowed; + } + hasLocation = TRUE; +- ap_table_set(r->headers_out, "Location", value); ++ apr_table_set(r->headers_out, "Location", value); + continue; + } + + /* If the script wants them merged, it can do it */ +- ap_table_add(r->err_headers_out, name, value); ++ apr_table_add(r->err_headers_out, name, value); + continue; + } + else { +- ap_table_add(fr->authHeaders, name, value); ++ apr_table_add(fr->authHeaders, name, value); + } + } + @@ -765,7 +765,7 @@ * Who responds, this handler or Apache? */ @@ -334,15 +1110,70 @@ diff -urN mod_fastcgi-2.4.2.org/mod_fastcgi.c mod_fastcgi-2.4.2/mod_fastcgi.c /* * Based on internal redirect handling in mod_cgi.c... * +@@ -835,11 +835,11 @@ + if ((p = strpbrk(name, "\r\n")) != NULL) + *p = '\0'; + fr->parseHeader = SCAN_CGI_BAD_HEADER; +- return ap_psprintf(r->pool, "malformed header '%s'", name); ++ return apr_psprintf(r->pool, "malformed header '%s'", name); + + DuplicateNotAllowed: + fr->parseHeader = SCAN_CGI_BAD_HEADER; +- return ap_psprintf(r->pool, "duplicate header '%s'", name); ++ return apr_psprintf(r->pool, "duplicate header '%s'", name); + } + + /* +@@ -1019,9 +1019,9 @@ + char *end = strchr(r->uri + 2, '/'); + + if (end) +- *user = memcpy(ap_pcalloc(r->pool, end - r->uri), r->uri + 1, end - r->uri - 1); ++ *user = memcpy(apr_pcalloc(r->pool, end - r->uri), r->uri + 1, end - r->uri - 1); + else +- *user = ap_pstrdup(r->pool, r->uri + 1); ++ *user = apr_pstrdup(r->pool, r->uri + 1); + *group = "-"; + } + else { +@@ -1030,8 +1030,8 @@ + + get_request_identity(r, &uid, &gid); + +- *user = ap_psprintf(r->pool, "%ld", (long) uid); +- *group = ap_psprintf(r->pool, "%ld", (long) gid); ++ *user = apr_psprintf(r->pool, "%ld", (long) uid); ++ *group = apr_psprintf(r->pool, "%ld", (long) gid); + } + } + +@@ -1225,7 +1225,7 @@ + { + /* xxx this handle should live somewhere (see CloseHandle()s below too) */ + char * wait_npipe_mutex_name, * cp; +- wait_npipe_mutex_name = cp = ap_pstrdup(rp, socket_path); ++ wait_npipe_mutex_name = cp = apr_pstrdup(rp, socket_path); + while ((cp = strchr(cp, '\\'))) *cp = '/'; + + wait_npipe_mutex = CreateMutex(NULL, FALSE, wait_npipe_mutex_name); @@ -2318,7 +2318,7 @@ } ap_block_alarms(); - ap_register_cleanup(rp, (void *)fr, cleanup, ap_null_cleanup); -+ ap_register_cleanup(rp, (void *)fr, cleanup, apr_pool_cleanup_null); ++ apr_pool_cleanup_register(rp, (void *)fr, cleanup, apr_pool_cleanup_null); ap_unblock_alarms(); #ifdef WIN32 +@@ -2422,7 +2422,7 @@ + const char *fs_path; + pool * const p = r->pool; + fcgi_server *fs; +- fcgi_request * const fr = (fcgi_request *)ap_pcalloc(p, sizeof(fcgi_request)); ++ fcgi_request * const fr = (fcgi_request *)apr_pcalloc(p, sizeof(fcgi_request)); + uid_t uid; + gid_t gid; + @@ -2450,7 +2450,7 @@ else #endif @@ -357,10 +1188,19 @@ diff -urN mod_fastcgi-2.4.2.org/mod_fastcgi.c mod_fastcgi-2.4.2/mod_fastcgi.c fr->gotHeader = FALSE; fr->parseHeader = SCAN_CGI_READING_HEADERS; - fr->header = ap_make_array(p, 1, 1); -+ fr->header = apr_make_array(p, 1, 1); ++ fr->header = apr_array_make(p, 1, 1); fr->fs_stderr = NULL; fr->r = r; fr->readingEndRequestBody = FALSE; +@@ -2489,7 +2489,7 @@ + fr->keepReadingFromFcgiApp = TRUE; + fr->fs = fs; + fr->fs_path = fs_path; +- fr->authHeaders = ap_make_table(p, 10); ++ fr->authHeaders = apr_table_make(p, 10); + #ifdef WIN32 + fr->fd = INVALID_SOCKET; + fr->dynamic = ((fs == NULL) || (fs->directive == APP_CLASS_DYNAMIC)) ? TRUE : FALSE; @@ -2531,7 +2531,7 @@ */ static int apache_is_scriptaliased(request_rec *r) @@ -427,9 +1267,12 @@ diff -urN mod_fastcgi-2.4.2.org/mod_fastcgi.c mod_fastcgi-2.4.2/mod_fastcgi.c (void *)r->err_headers_out, fr->authHeaders, NULL); } -@@ -2681,8 +2681,8 @@ +@@ -2679,10 +2679,10 @@ + } + /* Save the existing subprocess_env, because we're gonna muddy it up */ - fr->saved_subprocess_env = ap_copy_table(r->pool, r->subprocess_env); +- fr->saved_subprocess_env = ap_copy_table(r->pool, r->subprocess_env); ++ fr->saved_subprocess_env = apr_table_copy(r->pool, r->subprocess_env); - ap_table_setn(r->subprocess_env, "REMOTE_PASSWD", password); - ap_table_setn(r->subprocess_env, "FCGI_APACHE_ROLE", "AUTHENTICATOR"); @@ -447,9 +1290,12 @@ diff -urN mod_fastcgi-2.4.2.org/mod_fastcgi.c mod_fastcgi-2.4.2/mod_fastcgi.c ap_log_rerror(FCGI_LOG_ERR_NOERRNO, r, "FastCGI: FastCgiAuthenticator \"%s\" redirected (not allowed)", dir_config->authenticator); -@@ -2748,7 +2748,7 @@ +@@ -2746,9 +2746,9 @@ + } + /* Save the existing subprocess_env, because we're gonna muddy it up */ - fr->saved_subprocess_env = ap_copy_table(r->pool, r->subprocess_env); +- fr->saved_subprocess_env = ap_copy_table(r->pool, r->subprocess_env); ++ fr->saved_subprocess_env = apr_table_copy(r->pool, r->subprocess_env); - ap_table_setn(r->subprocess_env, "FCGI_APACHE_ROLE", "AUTHORIZER"); + apr_table_setn(r->subprocess_env, "FCGI_APACHE_ROLE", "AUTHORIZER"); @@ -465,9 +1311,12 @@ diff -urN mod_fastcgi-2.4.2.org/mod_fastcgi.c mod_fastcgi-2.4.2/mod_fastcgi.c ap_log_rerror(FCGI_LOG_ERR_NOERRNO, r, "FastCGI: FastCgiAuthorizer \"%s\" redirected (not allowed)", dir_config->authorizer); -@@ -2808,7 +2808,7 @@ +@@ -2806,9 +2806,9 @@ + } + /* Save the existing subprocess_env, because we're gonna muddy it up */ - fr->saved_subprocess_env = ap_copy_table(r->pool, r->subprocess_env); +- fr->saved_subprocess_env = ap_copy_table(r->pool, r->subprocess_env); ++ fr->saved_subprocess_env = apr_table_copy(r->pool, r->subprocess_env); - ap_table_setn(r->subprocess_env, "FCGI_APACHE_ROLE", "ACCESS_CHECKER"); + apr_table_setn(r->subprocess_env, "FCGI_APACHE_ROLE", "ACCESS_CHECKER");