>Number: 886 >Category: general >Synopsis: Code in http_core.c does not allow more than one tag directive >on a line >Confidential: no >Severity: non-critical >Priority: medium >Responsible: apache (Apache HTTP Project) >State: open >Class: sw-bug >Submitter-Id: apache >Arrival-Date: Sat Jul 19 12:30:02 1997 >Originator: [EMAIL PROTECTED] >Organization: apache >Release: 1.2.1 >Environment: FreeBSD intend.pc.cc.cmu.edu 2.2-BETA_A FreeBSD 2.2-BETA_A #0: Mon Feb 3 00:50:32 EST 1997 [EMAIL PROTECTED]:/usr/src/sys/compile/INTEND i386 >Description: in http_core.c, the interpretation of tag directives seems to be flawed. If you put more than one tag on a line (for example, <IfModule x.c>blah blah</IfModule>), it will try to compare against module "x.c>blah blah</IfModule" -- and generally bad stuff happens.
The first thing I tried changing is to use strchr() instead of strrchr(), which then correctly sets the module to "x.c", but this doesn't fix the behavior; 'blah blah' is not executed. I think this is due to what the function does with stuff between the tags, which I haven't absorbed enough to understand how to fix it. The temporary fix is to just not put more than one tag on a line. Of course, this bug report assumes that it is desirable to be able to place more than one tag on a line. >How-To-Repeat: Should be self-evident -- just try using more than one on a line, and look at what the function does >Fix: Well, a start to fixing it is in the full description, which is to change strrchr to strchr. However, it still needs to be changed to interpret the rest of the line (i.e. the stuff in between the tags) correctly. %0 >Audit-Trail: >Unformatted:
