>Number: 5389 >Category: mod_rewrite >Synopsis: [PATCH] - expand_backref_inbuffer broken in version 1.148 of >mod_rewrite.c >Confidential: no >Severity: critical >Priority: medium >Responsible: apache >State: open >Class: change-request >Submitter-Id: apache >Arrival-Date: Mon Nov 29 14:00:01 PST 1999 >Last-Modified: >Originator: [EMAIL PROTECTED] >Organization: apache >Release: pre 1.3.10 >Environment: n/a >Description:
mod_rewrite is *SEVERELY* broken by a one-character bug introduced in version 1.148. The bug causes the next-to-last backref substitution to never happen... if you only have one backref, the $1 disappears without a trace! This is described more fully with an example in a followup to PR#4766. Following is a patch against mod_rewrite.c version 1.152 that fixes the problem. >How-To-Repeat: See followups to PR#4766 for a demonstration. >Fix: --- src/modules/standard/mod_rewrite.c.112999 Mon Nov 29 16:32:33 1999 +++ src/modules/standard/mod_rewrite.c Mon Nov 29 16:32:40 1999 @@ -2513,7 +2513,7 @@ /* now apply the standard regex substitution function */ ap_cpystrn(buf, ap_pregsub(p, buf, bri->source, - bri->nsub+0, bri->regmatch), nbuf); + bri->nsub+1, bri->regmatch), nbuf); /* restore the original $N and & backrefs */ for (i = 0; buf[i] != '\0' && i < nbuf; i++) { >Audit-Trail: >Unformatted: [In order for any reply to be added to the PR database, you need] [to include <[EMAIL PROTECTED]> in the Cc line and make sure the] [subject line starts with the report component and number, with ] [or without any 'Re:' prefixes (such as "general/1098:" or ] ["Re: general/1098:"). If the subject doesn't match this ] [pattern, your message will be misfiled and ignored. The ] ["apbugs" address is not added to the Cc line of messages from ] [the database automatically because of the potential for mail ] [loops. If you do not include this Cc, your reply may be ig- ] [nored unless you are responding to an explicit request from a ] [developer. Reply only with text; DO NOT SEND ATTACHMENTS! ]