You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Brian Pane <br...@cnet.com> on 2003/03/31 06:49:16 UTC
Re: cvs commit: httpd-2.0/modules/generators mod_cgid.c
+1 for 2.0.45
Brian
On Sun, 2003-03-30 at 20:44, wrowe@apache.org wrote:
> wrowe 2003/03/30 20:44:11
>
> Modified: modules/generators mod_cgid.c
> Log:
> Solve segfaults from unusual error exceptions in cgid. The daemon
> has no 'real' request_rec, so we can't use ap_log_rerror() anywhere
> within the cgid_server() code.
>
> Also, one of the two log messages was echoed to the child, no point
> when the actual request logic should take care of that notification.
>
> Submitted by: Jeff Trawick
> Reviewed by: Bill Rowe
>
> Revision Changes Path
> 1.149 +12 -6 httpd-2.0/modules/generators/mod_cgid.c
>
> Index: mod_cgid.c
> ===================================================================
> RCS file: /home/cvs/httpd-2.0/modules/generators/mod_cgid.c,v
> retrieving revision 1.148
> retrieving revision 1.149
> diff -u -r1.148 -r1.149
> --- mod_cgid.c 12 Feb 2003 18:27:37 -0000 1.148
> +++ mod_cgid.c 31 Mar 2003 04:44:11 -0000 1.149
> @@ -735,8 +735,11 @@
> ((rc = apr_procattr_cmdtype_set(procattr, cmd_type)) != APR_SUCCESS) ||
> ((rc = apr_procattr_child_errfn_set(procattr, cgid_child_errfn)) != APR_SUCCESS)) {
> /* Something bad happened, tell the world. */
> - ap_log_rerror(APLOG_MARK, APLOG_ERR, rc, r,
> - "couldn't set child process attributes: %s", r->filename);
> + * ap_log_rerror() won't work because the header table used by
> + * ap_log_rerror() hasn't been replicated in the phony r
> + */
> + ap_log_error(APLOG_MARK, APLOG_ERR, rc, r->server,
> + "couldn't set child process attributes: %s", r->filename);
> }
> else {
> apr_pool_userdata_set(r, ERRFN_USERDATA_KEY, apr_pool_cleanup_null, ptrans);
> @@ -757,10 +760,13 @@
> procattr, ptrans);
>
> if (rc != APR_SUCCESS) {
> - /* Bad things happened. Everyone should have cleaned up. */
> - ap_log_rerror(APLOG_MARK, APLOG_ERR|APLOG_TOCLIENT, rc, r,
> - "couldn't create child process: %d: %s", rc,
> - apr_filename_of_pathname(r->filename));
> + /* Bad things happened. Everyone should have cleaned up.
> + * ap_log_rerror() won't work because the header table used by
> + * ap_log_rerror() hasn't been replicated in the phony r
> + */
> + ap_log_error(APLOG_MARK, APLOG_ERR, rc, r->server,
> + "couldn't create child process: %d: %s", rc,
> + apr_filename_of_pathname(r->filename));
> }
> else {
> apr_hash_set(script_hash, &cgid_req.conn_id, sizeof(cgid_req.conn_id),
>
>
>