Commit 685f98cc authored by Eric Covener's avatar Eric Covener
Browse files

mod_rewrite: PR58854: Revert r1726016 (rewrite looping issue) which was

reverted in trunk in r1732896. The fix is bad and breaks old loop
avoidance.

Reviewed By: covener, ylavic, jim



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1734257 13f79535-47bb-0310-9956-ffa450edef68
parent b2584bc0
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -120,10 +120,6 @@ Changes with Apache 2.4.19
     is now logged at TRACE1 level to match the underlying core output filter
     severity.  [Eric Covener]

  *) mod_rewrite: Avoid looping on relative substitutions that
     result in the same filename we started with. PR 58854.
     [Eric Covener]

  *) mime.types: add common extension "m4a" for MPEG 4 Audio.
     PR 57895 [Dylan Millikin <dylan.millikin gmail.com>]

+0 −5
Original line number Diff line number Diff line
@@ -129,11 +129,6 @@ PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
     2.4.x patch: trunk patch works (modulo CHANGES)
     +1: minfrin, jim, ylavic

  *) mod_rewrite: PR58854: Revert r1726016 (rewrite looping issue) which was
     reverted in trunk in r1732896. The fix is bad and breaks old loop
     avoidance.
     +1 covener, jim, ylavic

  *) mod_rewrite: Add QSL flag as a way to allow rewrites to files with question
                  marks in their names. PR58777
     trunk patch: http://svn.apache.org/r1734125
+13 −14
Original line number Diff line number Diff line
@@ -5010,6 +5010,19 @@ static int hook_fixup(request_rec *r)
                return HTTP_BAD_REQUEST;
            }

            /* Check for deadlooping:
             * At this point we KNOW that at least one rewriting
             * rule was applied, but when the resulting URL is
             * the same as the initial URL, we are not allowed to
             * use the following internal redirection stuff because
             * this would lead to a deadloop.
             */
            if (ofilename != NULL && strcmp(r->filename, ofilename) == 0) {
                rewritelog((r, 1, dconf->directory, "initial URL equal rewritten"
                            " URL: %s [IGNORING REWRITE]", r->filename));
                return OK;
            }

            tmpfilename = r->filename;

            /* if there is a valid base-URL then substitute
@@ -5070,20 +5083,6 @@ static int hook_fixup(request_rec *r)
                }
            }

            /* Check for deadlooping:
             * At this point we KNOW that at least one rewriting
             * rule was applied, but when the resulting URL is
             * the same as the initial URL, we are not allowed to
             * use the following internal redirection stuff because
             * this would lead to a deadloop.
             */
            if (ofilename != NULL && strcmp(r->filename, ofilename) == 0) {
                rewritelog((r, 1, dconf->directory, "initial URL equal rewritten"
                            " URL: %s [IGNORING REWRITE]", r->filename));
                return OK;
            }


            /* now initiate the internal redirect */
            rewritelog((r, 1, dconf->directory, "internal redirect with %s "
                        "[INTERNAL REDIRECT]", r->filename));