php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #14143 Segmentation fun
Submitted: 2001-11-20 06:49 UTC Modified: 2003-08-08 04:47 UTC
From: teo at gecadsoftware dot com Assigned:
Status: Closed Package: Apache2 related
PHP Version: 4.x OS: Mandrake8.1
Private report: No CVE-ID: None
 [2001-11-20 06:49 UTC] teo at gecadsoftware dot com
related to #12691

Configuration: same as in #12691 except Apache is using prefork mpm.

The request: GET /i.php/a

Backtrace and request info are:

Program received signal SIGSEGV, Segmentation fault.
0x4004bb1e in apr_palloc (a=0x813e4cc, reqsize=10) at apr_pools.c:1214
1214        first_avail = blok->h.first_avail;
(gdb) bt
#0  0x4004bb1e in apr_palloc (a=0x813e4cc, reqsize=10) at apr_pools.c:1214
#1  0x80910d8 in add_any_filter (name=0x80aac34 "BYTERANGE", ctx=0x0,
    r=0x813e51c, c=0x813a5cc, reg_filter_set=0x80ca19c, r_filters=0x813e688,
    c_filters=0x813a610) at util_filter.c:151
#2  0x809131f in ap_add_output_filter (name=0x80aac34 "BYTERANGE", ctx=0x0,
    r=0x813e51c, c=0x813a5cc) at util_filter.c:201
#3  0x8069f67 in ap_http_insert_filter (r=0x813e51c) at http_core.c:310
#4  0x809ca63 in ap_run_insert_filter (r=0x813e51c) at request.c:120
#5  0x809d23d in ap_process_request_internal (r=0x813e51c) at request.c:279
#6  0x806f779 in ap_process_request (r=0x813e51c) at http_request.c:284
#7  0x8069e96 in ap_process_http_connection (c=0x813a5cc) at http_core.c:289
#8  0x808f2f7 in ap_run_process_connection (c=0x813a5cc) at connection.c:82
#9  0x808f58d in ap_process_connection (c=0x813a5cc) at connection.c:219
#10 0x80804bc in child_main (child_num_arg=0) at prefork.c:803
#11 0x80805b3 in make_child (s=0x80cae44, slot=0) at prefork.c:839
#12 0x8080725 in startup_children (number_to_start=1) at prefork.c:913
#13 0x8080c45 in ap_mpm_run (_pconf=0x80c9cec, plog=0x80fde8c, s=0x80cae44)
    at prefork.c:1129
#14 0x8087ce6 in main (argc=2, argv=0xbffff674) at main.c:432


(gdb) f 3
#3  0x8069f67 in ap_http_insert_filter (r=0x813e51c) at http_core.c:310
310             ap_add_output_filter("BYTERANGE", NULL, r, r->connection);
(gdb) p *r
$8 = {pool = 0x813e4ec, connection = 0x813a5cc, server = 0x80cae44,
  next = 0x0, prev = 0x0, main = 0x0,
  the_request = 0x813ecac "GET /i.php/a HTTP/1.1", assbackwards = 0,
  proxyreq = 0, header_only = 0, protocol = 0x813ecfc "HTTP/1.1",
  proto_num = 1001, hostname = 0x813ef6c "teo",
  request_time = 1006255730034262, status_line = 0x0, status = 200,
  method = 0x813ecc4 "GET", method_number = 0, allowed = 0,
  allowed_xmethods = 0x0, allowed_methods = 0x813e694, sent_bodyct = 0,
  bytes_sent = 0, mtime = 0, chunked = 0, boundary = 0x0, range = 0x0,
  clength = 0, remaining = 0, read_length = 0, read_body = 0,  read_chunked = 0, expecting_100 = 0, headers_in = 0x813e6c4,
  headers_out = 0x813ea14, err_headers_out = 0x813ea8c,
  subprocess_env = 0x813e86c, notes = 0x813eacc,
  content_type = 0x813f604 "application/x-httpd-php", handler = 0x0,
  content_encoding = 0x0, content_languages = 0x0, vlist_validator = 0x0,
  user = 0x0, ap_auth_type = 0x0, no_cache = 0, no_local_copy = 0,
  unparsed_uri = 0x813ecdc "/i.php/a", uri = 0x813ecec "/i.php/a",
  filename = 0x813f1d4 "/usr/local/apache2/htdocs/i.php",
  canonical_filename = 0x813f0e4 "/usr/local/apache2/htdocs/i.php/a",
  path_info = 0x813f133 "/a", args = 0x0, finfo = {cntxt = 0x813e4ec,
    valid = 7598448, protection = 1604, filetype = APR_REG, user = 0,
    group = 0, inode = 314593, device = 773, nlink = 1, size = 17, csize = 24,
    atime = 1006252969000000, mtime = 997404110000000,
    ctime = 997404110000000,
    fname = 0x813f1d4 "/usr/local/apache2/htdocs/i.php",
    name = 0x80c23cc "O,\f\b", filehand = 0x13f0e4}, parsed_uri = {
    scheme = 0x0, hostinfo = 0x0, user = 0x0, password = 0x0, hostname = 0x0,
    port_str = 0x0, path = 0x813ecec "/i.php/a", query = 0x0, fragment = 0x0,
    hostent = 0x0, port = 0, is_initialized = 1, dns_looked_up = 0,
    dns_resolved = 0}, per_dir_config = 0x813f474, request_config = 0x813eb0c,
  htaccess = 0x0, output_filters = 0x813f62c, input_filters = 0x813f654,
  eos_sent = 0}







Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2002-01-17 06:01 UTC] lobbin@php.net
Does the same happen on 4.1.1 or current CVS?
 [2002-01-17 13:27 UTC] teo at gecadsoftware dot com
Tested again on Mandrake8.1 / php-4.1.1 / Apache-2.0.28-beta.
for a page like i.php/something the PATH_INFO still doesn't get set, but least it doesn't segfault anymore.

PHP config line: --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-dom --disable-posix --disable-pic --with-zlib --enable-wddx --enable-debug


 [2002-01-17 13:44 UTC] biancardi at xware dot it
to solve the problem related to cgi var setting (PATH_INFO and so on) you need the latest cvs, the one in 4.1.1
has bugs (at least when used with apache-2.0.28).

Roberto.
 [2002-01-18 02:04 UTC] lobbin@php.net
Teo: Can you download a CVS snapshot, and see if it works?

http://snaps.php.net
 [2002-01-21 07:18 UTC] teo at gecadsoftware dot com
After some hassle with compilation I tried again w/ a recent snapshot.Path info still doesn't get set :(.


 [2003-08-08 04:47 UTC] sniper@php.net
This was fixed long time ago.

 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Wed Oct 30 22:01:28 2024 UTC