Nice catch Paul.
Bill
> rederpj 2002/12/17 07:29:02
>
> Modified: . CHANGES
> modules/experimental mod_cache.c
> Log:
> mod_cache: Fix PR 15113, a core dump in cache_in_filter when
> a redirect occurs. The code was passing a format string and
> integer to apr_pstrcat. Changed to apr_psprintf. [Paul J. Reder]
>
> Revision Changes Path
> 1.1012 +5 -0 httpd-2.0/CHANGES
>
> Index: CHANGES
> ===================================================================
> RCS file: /home/cvs/httpd-2.0/CHANGES,v
> retrieving revision 1.1011
> retrieving revision 1.1012
> diff -u -r1.1011 -r1.1012
> --- CHANGES 15 Dec 2002 16:37:18 -0000 1.1011
> +++ CHANGES 17 Dec 2002 15:29:01 -0000 1.1012
> @@ -2,6 +2,11 @@
>
> [Remove entries to the current 2.0 section below, when backported]
>
> + *) mod_cache: Fix PR 15113, a core dump in cache_in_filter when
> + a redirect occurs. The code was passing a format string and
> + integer to apr_pstrcat. Changed to apr_psprintf.
> + [Paul J. Reder]
> +
> *) mod_mime: Workaround to prevent a segfault if r->filename=NULL
> [Brian Pane]
>
>
>
>
> 1.70 +2 -2 httpd-2.0/modules/experimental/mod_cache.c
>
> Index: mod_cache.c
> ===================================================================
> RCS file: /home/cvs/httpd-2.0/modules/experimental/mod_cache.c,v
> retrieving revision 1.69
> retrieving revision 1.70
> diff -u -r1.69 -r1.70
> --- mod_cache.c 11 Dec 2002 22:31:28 -0000 1.69
> +++ mod_cache.c 17 Dec 2002 15:29:02 -0000 1.70
> @@ -532,11 +532,11 @@
> * We include 304 Not Modified here too as this is the
> origin server
> * telling us to serve the cached copy.
> */
> - reason = apr_pstrcat(p, "Response status %d", r->status);
> + reason = apr_psprintf(p, "Response status %d", r->status);
> }
> else if (exps != NULL && exp == APR_DATE_BAD) {
> /* if a broken Expires header is present, don't cache it */
> - reason = apr_pstrcat(p, "Broken expires header %s", exp);
> + reason = apr_psprintf(p, "Broken expires header %s", exp);
> }
> else if (r->args && exps == NULL) {
> /* if query string present but no expiration time,
> don't cache it
>
>
>