As mentioned a month or two ago there were some implicit assumptions that the values in content_type, handler, content_encoding, ... were lowercase. I'm not referring to mod_negotiation here -- there were other cases where strcmp() was being used. But in addition, mod_negotiation could be convinced to call str_tolower() on r->content_language(s), which could possibly modify a "read-only" string... which wastes at least one memory page per child.
Clean all that up by declaring that the content fields in request_rec (and related fields elsewhere) must be lowercase, and must not be modified in place. Naturally I chose this because it's more efficient... rather than going around needlessly pstrdup()ing and strcasecmp()ing everywhere.
There are a few other tweaks in here I couldn't resist, along the lines of getting rid of unneeded pstrdup()s. Plus a new function set_string_slot_lower().