You are viewing a plain text version of this content. The canonical link for it is here.
Posted to apache-bugdb@apache.org by Tim Kniveton <ti...@neu.sgi.com> on 1997/07/19 21:30:02 UTC

general/886: Code in http_core.c does not allow more than one tag directive on a line

>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:     tim@neu.sgi.com
>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     viento@intend.pc.cc.cmu.edu:/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: