crash in sablotron module

From: Date: Thu, 07 Dec 2000 01:05:28 +0000
Subject: crash in sablotron module
Groups: php.dev 
Request: Send a blank email to php-dev+get-40278@lists.php.net to get a copy of this message
With current php4 cvs and sablotron 0.44 installed, the following php script: <?php error_reporting(E_ALL); $xsl_file = './stock.xsl'; xslt_output_begintransform($xsl_file); $xml = implode('', file('./stocks.xml')); echo $xml; xslt_output_endtransform(); ?> gives this backtrace: (gdb) run -X Starting program: /usr/sbin/apache.dbg -X Program received signal SIGSEGV, Segmentation fault. 0x403fe407 in DynBlock::compactToBuffer_ (this=0x19, buf=0x28 <Address 0x28 out of bounds>, kill_=4) at datastr.cpp:112 112 int compactedBytes = 0; Current language: auto; currently c++ (gdb) bt #0 0x403fe407 in DynBlock::compactToBuffer_ (this=0x19, buf=0x28 <Address 0x28 out of bounds>, kill_=4) at datastr.cpp:112 #1 0x4044eebc in __DTOR_END__ () from /usr/local/lib/libsablot.so.0 #2 0x4040f468 in OutputDefinition::getMethod (this=0x80f3b78) at output.cpp:205 #3 0x40400e09 in findSame (p=@0xbfffdc3c) at expr.cpp:308 #4 0x404164fc in my_getcwd (dir=@0xbfffded4) at proc.cpp:268 #5 0x40415379 in TreeConstructer::setQNameFromExpat (this_=0xbfffded4, qname_=@0x80f3484, text=0x8116670 "") at parser.cpp:613 #6 0x8072e80 in doContent (parser=0x8116498, startTagLevel=0, enc=0x808cb20, s=0x80f7509 "<date>8/30/2000</date>\r\n <time>2:37PM</time>\r\n </when>\r\n <price type=\"ask\" value=\"49.375\" />\r\n <price type=\"open\" value=\"46.0625\" />\r\n <price type=\"dayhigh\" value=\"50.375\" />\r\n <price type=\"da"..., end=0x80f7792 "l\" /><br/>\r\n <xsl:apply-templates select=\"price\" />\r\n</xsl:template>\r\n\r\n<xsl:template match=\"price\">\r\n <xsl:value-of select=\"@type\" />: <xsl:value-of select=\"@value\" />\r\n</xsl:template>\r\n\r\n</xsl"..., nextPtr=0x81164a4) at xmlparse.c:1266 #7 0x807275c in contentProcessor (parser=0x8116498, start=0x80f74cb "<list>\r\n<stock_quote>\r\n <symbol>LNUX</symbol>\r\n <when>\r\n <date>8/30/2000</date>\r\n <time>2:37PM</time>\r\n </when>\r\n <price type=\"ask\" value=\"49.375\" />\r\n <price type=\"open\" value=\"46.0625\" />"..., end=0x80f7792 "l\" /><br/>\r\n <xsl:apply-templates select=\"price\" />\r\n</xsl:template>\r\n\r\n<xsl:template match=\"price\">\r\n <xsl:value-of select=\"@type\" />: <xsl:value-of select=\"@value\" />\r\n</xsl:template>\r\n\r\n</xsl"..., endPtr=0x81164a4) at xmlparse.c:955 #8 0x80742fe in prologProcessor (parser=0x8116498, s=0x80f74b0 "<?xml version=\"1.0\"? >\r\n\r\n\r\n<list>\r\n<stock_quote>\r\n <symbol>LNUX</symbol>\r\n <when>\r\n <date>8/30/2000</date>\r\n <time>2:37PM</time>\r\n </when>\r\n <price type=\"ask\" value=\"49.375\" />\r\n <price typ"..., end=0x80f7792 "l\" /><br/>\r\n <xsl:apply-templates select=\"price\" />\r\n</xsl:template>\r\n\r\n<xsl:template match=\"price\">\r\n <xsl:value-of select=\"@type\" />: <xsl:value-of select=\"@value\" />\r\n</xsl:template>\r\n\r\n</xsl"..., nextPtr=0x81164a4) at xmlparse.c:2034 #9 0x8074123 in prologInitProcessor (parser=0x8116498, s=0x80f74b0 "<?xml version=\"1.0\"? >\r\n\r\n\r\n<list>\r\n<stock_quote>\r\n <symbol>LNUX</symbol>\r\n <when>\r\n <date>8/30/2000</date>\r\n <time>2:37PM</time>\r\n </when>\r\n <price type=\"ask\" value=\"49.375\" />\r\n <price typ"..., end=0x80f7792 "l\" /><br/>\r\n <xsl:apply-templates select=\"price\" />\r\n</xsl:template>\r\n\r\n<xsl:template match=\"price\">\r\n <xsl:value-of select=\"@type\" />: <xsl:value-of select=\"@value\" />\r\n</xsl:template>\r\n\r\n</xsl"..., nextPtr=0x81164a4) at xmlparse.c:1965 #10 0x80724c1 in XML_ParseBuffer (parser=0x8116498, len=738, isFinal=0) at xmlparse.c:819 #11 0x40415100 in TreeConstructer::tcExternalEntityRef (parser=0xbfffded4, context=0x4043e4a0 "", base=0xbfffde7c "üÞÿ¿}\237A@ÔÞÿ¿hc\021\bHÓ\013\bm\237A@ÔÞÿ¿@:\017\büÞÿ¿] \237A@¼îD@hc\021\bHÓ\013\bZÏA@td\021\b\017", systemId=0x40414a1d "[\201Ã\237¤\003", publicId=0x4044eebc ",\036\a") at parser.cpp:594 #12 0x40414a42 in TreeConstructer::tcStartNamespace (constructer=0xbfffded4, prefix=0x8116368 "", uri=0x80bd348 "ða\021\b\016") at parser.cpp:405 #13 0x40414b80 in TreeConstructer::tcEndNamespace (constructer=0xbfffded4, prefix=0x8116368 "") at parser.cpp:422 #14 0x40419f7d in Processor::getAliasedName (this=0x8116368, name=@0x80bd348, currNamespaces=@0x40418b6e) at proc.cpp:1133 #15 0x40418c41 in Processor::processVertexAfterParse (this=0x80f3a40, v=0x80f3a7c, t=0xbfffdf60, tc=0x0) at proc.cpp:851 #16 0x40418f47 in Processor::parse (this=0x80f3a40, t=0x80f3a7c, d=0xbfffe020) at proc.cpp:899 #17 0x404176c6 in Processor::insertRule (this=0x80f3a40, tmpl=0x80f6a04) at proc.cpp:508 #18 0x4041b4ac in SituationObj::message (this=0x80f3a40, type=135227908, code=1077089275, arg1=@0x403313ee, arg2=@0x0) at situa.cpp:194 #19 0x40261d78 in php_if_xslt_free (ht=0, return_value=0x80f728c, this_ptr=0x0, return_value_used=0) at sablot.c:751 #20 0x4020b969 in execute (op_array=0x80f2384) at ./zend_execute.c:1730 #21 0x40219eff in add_assoc_double (arg=0x8, key=0x3 <Address 0x3 out of bounds>, ---Type <return> to continue, or q <return> to quit--- d=-1.9970626831054688) at zend_API.c:284 #22 0x4022b5a4 in php_strip_url_passwd ( url=0xbffff3f8 "\002d:@¼÷\016\bd$\017\bÐg\017\b") at fopen-wrappers.c:494 #23 0x40227d6f in php_if_apache_note (ht=135191940, return_value=0x0, this_ptr=0xbffff43c, return_value_used=1076004568) at php_apache.c:142 #24 0x402286e8 in php_if_virtual (ht=135191940, return_value=0x0, this_ptr=0x0, return_value_used=1076004624) at php_apache.c:329 #25 0x40228726 in php_if_virtual (ht=135191940, return_value=0x4032ad3f, this_ptr=0x17, return_value_used=134560765) at php_apache.c:334 #26 0x8053e74 in ap_invoke_handler (r=0x80edd84) at http_config.c:508 #27 0x806271c in process_request_internal (r=0x80edd84) at http_request.c:1214 #28 0x8062778 in ap_process_request (r=0x80edd84) at http_request.c:1230 #29 0x805c509 in child_main (child_num_arg=0) at http_main.c:4122 #30 0x805c69c in make_child (s=0x8099f44, slot=0, now=976150947) at http_main.c:4235 #31 0x805c7b9 in startup_children (number_to_start=3) at http_main.c:4317 #32 0x805cc6b in standalone_main (argc=2, argv=0xbffff6a4) at http_main.c:4605 #33 0x805d31d in main (argc=2, argv=0xbffff6a4) at http_main.c:4933 You can get the xsl and xml files at http://marina.horde.org/horde/jonah/stocks.xml and http://marina.horde.org/horde/jonah/stock.xsl This doesn't seem to happen until the second time I process the page during the lifetime of the module, but the first time, I don't get valid results, either. It could be that the xslt is off; it works fine in IE5, and I don't have anything else to test it with. In any case, I don't think php should be segfaulting even if it is just an xsl problem. -chuck

« previous php.dev (#40278) next »