Return-Path: Delivered-To: apache-bugdb-archive@hyperreal.org Received: (qmail 15627 invoked by uid 6000); 13 Feb 1998 01:50:04 -0000 Received: (qmail 15573 invoked by uid 2001); 13 Feb 1998 01:50:00 -0000 Received: (qmail 15390 invoked by uid 2012); 13 Feb 1998 01:48:12 -0000 Message-Id: <19980213014812.15389.qmail@hyperreal.org> Date: 13 Feb 1998 01:48:12 -0000 From: Jeff Lewis Reply-To: lewis@stanford.edu To: apbugs@hyperreal.org X-Send-Pr-Version: 3.2 Subject: mod_mime/1799: mod_mime's mapping to handler and content_type gets confused by some filenames Sender: apache-bugdb-owner@apache.org Precedence: bulk >Number: 1799 >Category: mod_mime >Synopsis: mod_mime's mapping to handler and content_type gets confused by some filenames >Confidential: no >Severity: non-critical >Priority: medium >Responsible: apache >State: open >Class: sw-bug >Submitter-Id: apache >Arrival-Date: Thu Feb 12 17:50:00 PST 1998 >Last-Modified: >Originator: lewis@stanford.edu >Organization: apache >Release: 1.3b3 >Environment: SunOS 5.5.1 Generic_103640-14 sun4u sparc SUNW,Ultra-1 gcc version 2.7.2.2 >Description: If you've got a filename, with two substrings that qualify as extensions, and one of them is bound to a handler and one of them is bound to a content-type (map files and gifs, for instance), you'll end up with both the handler and the content-type set. Since the handler takes precedence, this'll sometimes do what you want and sometimes not. My problem case was a GIF named assu.map.gif that'd end up getting handled by mod_imap. >How-To-Repeat: with mod_imap in your server, handling files with the ".map" ext, name a gif "something.map.gif" then grab it, it'll be a broken image because the map handler's trying to deliver it >Fix: Don't know if it's the best way, but I reset the handler back to orighandler if the content-type gets set or changed based a string later in the filename: *** mod_mime.c.orig Thu Feb 12 16:31:53 1998 --- mod_mime.c Thu Feb 12 16:32:31 1998 *************** *** 256,261 **** --- 256,262 ---- if ((type = table_get(conf->forced_types, ext)) || (type = table_get(hash_buckets[hash(*ext)], ext))) { r->content_type = type; + r->handler = orighandler; found = 1; } %0 >Audit-Trail: >Unformatted: [In order for any reply to be added to the PR database, ] [you need to include in the Cc line ] [and leave the subject line UNCHANGED. This is not done] [automatically because of the potential for mail loops. ]