https://issues.apache.org/bugzilla/show_bug.cgi?id=49033

           Summary: infinite loop
           Product: Apache httpd-2
           Version: 2.2.15
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: major
          Priority: P2
         Component: Core
        AssignedTo: [email protected]
        ReportedBy: [email protected]


Hello

When we create the following rewrite in .htaccess


RewriteEngine On

RewriteRule ^a a.php [N]


apache will consume all memory
The LimitInternalRecursion 100 added in config doesnt help 


process

apache    8169 78.1 64.4 2900320 2823532 ?     R    01:20   0:21
/usr/sbin/httpd -k start -DSSL

strace

brk(0x5ffaf000)                         = 0x5ffaf000
brk(0x5ffd1000)                         = 0x5ffd1000
brk(0x5fff3000)                         = 0x5fff3000
brk(0x60015000)                         = 0x60015000
brk(0x60037000)                         = 0x60037000
brk(0x60059000)                         = 0x60059000



GDB

GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Attaching to process 8169
Reading symbols from /usr/sbin/httpd...done.
Reading symbols from /usr/lib/libz.so.1...done.
Loaded symbols for /usr/lib/libz.so.1
Reading symbols from /usr/lib/libssl.so.0.9.8...Reading symbols from
/usr/lib/debug/usr/lib/libssl.so.0.9.8...done.
done.
Loaded symbols for /usr/lib/libssl.so.0.9.8
Reading symbols from /usr/lib/libcrypto.so.0.9.8...Reading symbols from
/usr/lib/debug/usr/lib/libcrypto.so.0.9.8...done.
done.
Loaded symbols for /usr/lib/libcrypto.so.0.9.8
Reading symbols from /lib/libm.so.6...done.
Loaded symbols for /lib/libm.so.6
Reading symbols from /usr/local/lib/libpcre.so.0...done.
Loaded symbols for /usr/local/lib/libpcre.so.0
Reading symbols from /etc/httpd/lib/libaprutil-1.so.0...done.
Loaded symbols for /etc/httpd/lib/libaprutil-1.so.0
Reading symbols from /usr/lib/libexpat.so.1...done.
Loaded symbols for /usr/lib/libexpat.so.1
Reading symbols from /usr/lib/libiconv.so.2...done.
Loaded symbols for /usr/lib/libiconv.so.2
Reading symbols from /etc/httpd/lib/libapr-1.so.0...done.
Loaded symbols for /etc/httpd/lib/libapr-1.so.0
Reading symbols from /lib/librt.so.1...done.
Loaded symbols for /lib/librt.so.1
Reading symbols from /lib/libcrypt.so.1...done.
Loaded symbols for /lib/libcrypt.so.1
Reading symbols from /lib/libpthread.so.0...done.
[Thread debugging using libthread_db enabled]
[New Thread 0x71c8f06bf6e0 (LWP 8169)]
Loaded symbols for /lib/libpthread.so.0
Reading symbols from /lib/libdl.so.2...done.
Loaded symbols for /lib/libdl.so.2
Reading symbols from /lib/libc.so.6...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib/ld-linux-x86-64.so.2...done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Reading symbols from /lib/libnss_compat.so.2...done.
Loaded symbols for /lib/libnss_compat.so.2
Reading symbols from /lib/libnsl.so.1...done.
Loaded symbols for /lib/libnsl.so.1
Reading symbols from /lib/libnss_nis.so.2...done.
Loaded symbols for /lib/libnss_nis.so.2
Reading symbols from /lib/libnss_files.so.2...done.
Loaded symbols for /lib/libnss_files.so.2
Reading symbols from /usr/lib/apache/mod_python.so...done.
Loaded symbols for /usr/lib/apache/mod_python.so
Reading symbols from /usr/lib/libpython2.5.so.1.0...Reading symbols from
/usr/lib/debug/usr/lib/libpython2.5.so.1.0...done.
done.
Loaded symbols for /usr/lib/libpython2.5.so.1.0
Reading symbols from /lib/libutil.so.1...done.
Loaded symbols for /lib/libutil.so.1
Reading symbols from /usr/lib/apache/mod_fastcgi.so...done.
Loaded symbols for /usr/lib/apache/mod_fastcgi.so
Reading symbols from /usr/lib/apache/mod_suphp.so...done.
Loaded symbols for /usr/lib/apache/mod_suphp.so
Reading symbols from /usr/lib/apache/mod_security2.so...done.
Loaded symbols for /usr/lib/apache/mod_security2.so
Reading symbols from /usr/lib/libxml2.so.2...done.
Loaded symbols for /usr/lib/libxml2.so.2
Reading symbols from /usr/lib/apache/mod_wsgi.so...done.
Loaded symbols for /usr/lib/apache/mod_wsgi.so
Reading symbols from
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/passenger-2.2.11/ext/apache2/mod_passenger.so...done.
Loaded symbols for
/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/gems/1.8/gems/passenger-2.2.11/ext/apache2/mod_passenger.so
Reading symbols from /usr/lib/libstdc++.so.6...done.
Loaded symbols for /usr/lib/libstdc++.so.6
Reading symbols from /lib/libgcc_s.so.1...done.
Loaded symbols for /lib/libgcc_s.so.1
0x000071c8ee3550e5 in strlen () from /lib/libc.so.6
(gdb) bt full
#0  0x000071c8ee3550e5 in strlen () from /lib/libc.so.6
No symbol table info available.
#1  0x000071c8eee9ef4a in apr_pstrcat (a=0x4d229b8) at
strings/apr_strings.c:138
        cp = 0x37903f60 "a.php"
        argp = <value optimized out>
        res = <value optimized out>
        saved_lengths = {43, 5, 80960600, 4954449, 137199080128336, 10}
        nargs = 1
        len = 43
        adummy = {{gp_offset = 24, fp_offset = 0, overflow_arg_area =
0x7cc8266f4010, reg_save_area = 0x7cc8266f3f30}}
#2  0x00000000004bbac1 in apply_rewrite_rule (p=0x4d35ba8, ctx=0x4d3aa68) at
mod_rewrite.c:3904
        regmatch = {{rm_so = 0, rm_eo = 1}, {rm_so = -1, rm_eo = -1}, {rm_so =
-1, rm_eo = -1}, {rm_so = -1, rm_eo = -1}, {rm_so = -1, rm_eo = -1}, {
    rm_so = -1, rm_eo = -1}, {rm_so = -1, rm_eo = -1}, {rm_so = -1, rm_eo =
-1}, {rm_so = -1, rm_eo = -1}, {rm_so = -1, rm_eo = -1}}
        rewriteconds = (apr_array_header_t *) 0x4d35b28
        conds = (rewritecond_entry *) 0x4d35b48
        i = 80960392
        rc = 80960600
        newuri = 0x37903f60 "a.php"
        r = (request_rec *) 0x4d22a30
        is_proxyreq = 0
#3  0x00000000004bbf72 in apply_rewrite_list (r=0x4d22a30,
rewriterules=0x4d35b88, perdir=0x4d35c58 "/path/to/file")
    at mod_rewrite.c:4027
        entries = (rewriterule_entry *) 0x4d35ba8
        p = (rewriterule_entry *) 0x4d35ba8
        i = <value optimized out>
        changed = 1
        rc = 1
        s = <value optimized out>
        ctx = (rewrite_ctx *) 0x4d3aa68
#4  0x00000000004bc9ee in hook_fixup (r=0x4d22a30) at mod_rewrite.c:4584
        dconf = (rewrite_perdir_conf *) 0x4d362e0
        cp = <value optimized out>
        cp2 = <value optimized out>
        ccp = <value optimized out>
        l = 42
        rulestatus = <value optimized out>
        n = <value optimized out>
        ofilename = 0x4d2b5c0 "/path/to/a"
#5  0x000000000044130a in ap_run_fixups (r=0x4d22a30) at request.c:73
        n = 5
        rv = 1735339360
#6  0x000000000048fc08 in ap_process_request (r=0x4d22a30) at
http_request.c:280
        access_status = 932200293
#7  0x000000000048cc38 in ap_process_http_connection (c=0x4d16740) at
http_core.c:190
        r = (request_rec *) 0x4d22a30
        csd = (apr_socket_t *) 0x0
#8  0x000000000044d943 in ap_run_process_connection (c=0x4d16740) at
connection.c:43
        n = 1
---Type <return> to continue, or q <return> to quit---
        rv = 1735339360
#9  0x00000000004be150 in child_main (child_num_arg=<value optimized out>) at
prefork.c:662
        current_conn = <value optimized out>
        csd = (void *) 0x4d16550
        ptrans = (apr_pool_t *) 0x4d164d8
        allocator = (apr_allocator_t *) 0x4cd47c0
        status = <value optimized out>
        i = <value optimized out>
        lr = <value optimized out>
        pollset = (apr_pollset_t *) 0x4d147a0
        sbh = (ap_sb_handle_t *) 0x4d14798
        bucket_alloc = (apr_bucket_alloc_t *) 0x4d209a8
        last_poll_idx = 1
#10 0x00000000004be414 in make_child (s=0x71d690, slot=12) at prefork.c:758
No locals.
#11 0x00000000004be9bc in ap_mpm_run (_pconf=<value optimized out>, plog=<value
optimized out>, s=<value optimized out>) at prefork.c:776
        index = <value optimized out>
        remaining_children_to_start = 3
        rv = <value optimized out>
#12 0x0000000000432da5 in main (argc=4, argv=0x7cc8266f47f8) at main.c:740
        c = 68 'D'
        configtestonly = 0
        confname = 0x4c0ac8 "conf/httpd.conf"
        def_server_root = 0x4c0ad8 "/etc/httpd"
        temp_error_log = 0x0
        error = <value optimized out>
        process = <value optimized out>
        server_conf = (server_rec *) 0x71d690
        pglobal = (apr_pool_t *) 0x70d728
        pconf = (apr_pool_t *) 0x70f738
        plog = (apr_pool_t *) 0x76db38
        ptemp = (apr_pool_t *) 0x71d8b8
        pcommands = (apr_pool_t *) 0x711748
        opt = (apr_getopt_t *) 0x711838
        rv = <value optimized out>
        mod = <value optimized out>
        optarg = 0x7cc8266f4a33 "SSL"
(gdb) quit


its really a bug ?

Regards,
Piotr

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to