+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:50:22.016032647 +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);
*port = (unsigned short) tmp;
-@@ -75,7 +75,7 @@
+@@ -75,11 +75,11 @@
tmp = strtol(txt, &ptr, 10);
if (*ptr != '\0') {
}
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')
{
}
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 @@
}
}
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;
+ 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;
#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
#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) {
}
#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:50:22.027030291 +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;
}
}
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);
#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:50:22.029029863 +0200
-@@ -135,11 +135,11 @@
++++ 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;
/* The FastCGI spec precludes sending of CONTENT_LENGTH, PATH_INFO,
* PATH_TRANSLATED, and SCRIPT_NAME (for some reason?). PATH_TRANSLATED we
+ * don't have, its the variable that causes Apache to break trying to set
+ * up (and thus the reason this fn exists vs. using ap_add_cgi_vars()). */
+ if (compat) {
+- ap_table_unset(e, "CONTENT_LENGTH");
++ apr_table_unset(e, "CONTENT_LENGTH");
+ return;
+ }
+
@@ -155,17 +155,17 @@
* args and path_info of the original request, and not any that may have
* come with the script URI in the include command. Ugh. */
- 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);
}
}
/* 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:50:22.034028792 +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)
}
q = p ;
-@@ -137,7 +137,7 @@
+@@ -137,12 +137,12 @@
int socket_pathLen = strlen(socket_path);
if (socket_pathLen >= sizeof((*socket_addr)->sun_path)) {
"\" 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) {
"\" 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:50:22.048025794 +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
#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?
*/
/*
* 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
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)
return t && (!strcasecmp(t, "cgi-script"));
}
-@@ -2556,7 +2556,7 @@
+@@ -2554,9 +2554,9 @@
+ */
+ r->method = "GET";
r->method_number = M_GET;
- ap_table_unset(r->headers_in, "Content-length");
+- ap_table_unset(r->headers_in, "Content-length");
++ apr_table_unset(r->headers_in, "Content-length");
- ap_internal_redirect_handler(ap_table_get(r->headers_out, "Location"), r);
+ ap_internal_redirect_handler(apr_table_get(r->headers_out, "Location"), r);
(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");
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");
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");