httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dean Gaudet <dgau...@arctic.org>
Subject Re: [PATCH] (Take 3) Core dump with Language Negotiation?!?
Date Tue, 19 Jan 1999 22:13:34 GMT
On Tue, 19 Jan 1999, Martin Kraemer wrote:

> This is Dean's patch, plus the changes at the calling location he
> mentioned (where ap_overlay_tables() used to be called), which I appended.
> 
> With this change, the dumps are gone, too (as with Roy's initial patch).
> Because of what Dean said about his solution...

Ya know, I suspect with either my version or Roy's version there's
problems with "set-cookie".  If we just want ap_overlay_table with copy
semantics it'd be:

    API_EXPORT(void) ap_copyover_table(table *dest, const table *source,
				    unsigned flags)
    {
	array_header *sarr = ap_table_elts(source);
	table_entry *selt = (table_entry *)sarr->elts;
	int i;

	for (i = 0; i < sarr->nelts; ++i) {
	    ap_table_add(dest, selt[i].key, selt[i].val);
	}
    }

which doesn't have O(n^2) problems... 

But I'm questioning what the hell mod_dir is doing this for anyhow.  It
seems totally bogus.  As equally bogus as the "fast redirect" in
mod_negotiation -- see lines 2669 and on. 

Both cases are extremely similar -- we've got a sub_req that we want to
use to finish the request.  In mod_dir you'll see it uses
internal_redirect which causes the URI lookup crud to be redone.

There's got to be a nice simplification of this.  The "fast redirect" 
code in mod_negotiation was a source of lots of bugs during 1.2.

I would say the minimum patch we should do now to fix the core dumps is an
ap_join_pools and remove the ap_destroy_sub_req... similar to what the
fast redirect does. 

Dean


Mime
  • Unnamed multipart/mixed (inline, None, 0 bytes)
View raw message