]> git.kaiwu.me - nginx.git/commit
Core: protection from cycles with named locations and post_action.
authorMaxim Dounin <mdounin@mdounin.ru>
Mon, 13 Feb 2012 15:35:48 +0000 (15:35 +0000)
committerMaxim Dounin <mdounin@mdounin.ru>
Mon, 13 Feb 2012 15:35:48 +0000 (15:35 +0000)
commit7dff998495d527041dbd7f48770dfc395ddabaee
treeb466d42af3378de207495c94721fd61e51899847
parent1b0ad6ee72179fef479bfae7c8c4bfd5ac834c29
Core: protection from cycles with named locations and post_action.

Now redirects to named locations are counted against normal uri changes
limit, and post_action respects this limit as well.  As a result at least
the following (bad) configurations no longer trigger infinite cycles:

1. Post action which recursively triggers post action:

    location / {
        post_action /index.html;
    }

2. Post action pointing to nonexistent named location:

    location / {
        post_action @nonexistent;
    }

3. Recursive error page for 500 (Internal Server Error) pointing to
   a nonexistent named location:

    location / {
        recursive_error_pages on;
        error_page 500 @nonexistent;
        return 500;
    }
src/http/ngx_http_core_module.c
src/http/ngx_http_request.c