php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #15131 XSLT Causing Core Dumps
Submitted: 2002-01-20 20:37 UTC Modified: 2002-10-03 19:09 UTC
Votes:62
Avg. Score:4.9 ± 0.3
Reproduced:62 of 62 (100.0%)
Same Version:55 (88.7%)
Same OS:55 (88.7%)
From: b dot labonte at ttu dot edu Assigned:
Status: Not a bug Package: Reproducible crash
PHP Version: 4.1.1 OS: RedHat 7.2
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: b dot labonte at ttu dot edu
New email:
PHP Version: OS:

 

 [2002-01-20 20:37 UTC] b dot labonte at ttu dot edu
I have repeatedly and on different physical machines compiled the following:
Sablotron 0.81
Expat 1.95.2
Apache 1.3.22
PHP 4.1.1
When I run an XSLT Transform, Apache core dumps.  
I get, in the error log:

[Sun Jan 20 15:12:33 2002] [notice] child pid 17404 exit signal Segmentation fault (11)

I can use the sabcmd binary that comes with Sablotron, and successfully transform the XML/XSLT without incident, so I don't think I have a bad Sab compile.

Any assistance is greatly appreciated.
I am recompiling Apache with debugging, tonight.

Please email me if I can be of any help.

My configure line is : ./configure  --with-apache=../apache_1.3.22/ --with-mysql --with-oci8=/home/oracle/OraHome/ --with-sybase=/usr/local/freetds/ --with-jpeg-dir=/usr/lib --with-png --enable-track-vars --enable-tr
ans-sid --enable-sigchild --with-curl=/usr/local --with-xslt-sablot --enable-xslt


Brandon

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2002-01-20 22:29 UTC] b dot labonte at ttu dot edu
Bug Trace, as best as I can get...

root@dev:/usr/local/apache/bin# gdb /usr/local/apache/bin/httpd 
GNU gdb Red Hat Linux 7.x (5.0rh-15) (MI_OUT)
Copyright 2001 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you 
are
welcome to change it and/or distribute copies of it under certain 
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for 
details.
This GDB was configured as "i386-redhat-linux"...(no debugging symbols 
found)...
(gdb) run -X
Starting program: /usr/local/apache/bin/httpd -X
[New Thread 1024 (LWP 12186)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1024 (LWP 12186)]
0x400a3f62 in Situation::generateMessage (this=0x6e617473, type=578643299, 
code=1667846974, 
    arg1=@0x662f3c6b, arg2=@0x3e746e6f, theMessage=@0x68742f3c) at 
situa.cpp:279
279	    if (messenger && !(flags & SAB_NO_ERROR_REPORTING))
Current language:  auto; currently c++
(gdb) bt
#0  0x400a3f62 in Situation::generateMessage (this=0x6e617473, 
type=578643299, code=1667846974, 
    arg1=@0x662f3c6b, arg2=@0x3e746e6f, theMessage=@0x68742f3c) at 
situa.cpp:279
#1  0x6e49646f in ?? ()
Cannot access memory at address 0x6d247b64
(gdb)  

 [2002-02-16 05:19 UTC] php at mike2k dot com
I am getting this as well, driving me nuts. Copy of email sent to Sablotron list as well. Also: could this be due to PHP's bundled expat possibly at all? Something to look at I guess, but then again, I'm not that technical on the PHP internals.

The machine is Redhat Linux 7.1, PHP 4.1.1, Sablotron 0.82, Apache 1.3.23. I have followed the directions every match of a segfault+php+sablotron+apache on google matched - recompile apache WITHOUT it's expat_lite.

Well, I've done that. I renamed the expat_lite dir AND used the --disable-rule=EXPAT, and did a "strings httpd | grep -i expat" and grepped for xml as well, and did an "nm" on the binary as well - no trace of any of that. I also removed the whole apache hierarchy to install it fresh. However, my calls to xslt_process() still give me:

[Sat Feb 16 01:46:55 2002] [notice] child pid 6871 exit signal Segmentation fault (11)
[Sat Feb 16 01:46:56 2002] [notice] child pid 6894 exit signal Segmentation fault (11)
[Sat Feb 16 01:46:58 2002] [notice] child pid 6867 exit signal Segmentation fault (11)
[Sat Feb 16 01:47:01 2002] [notice] child pid 6868 exit signal Segmentation fault (11)

in fact, now each page load reports TWO errors. the "sabcmd" command works fine, and is able to understand these. technically this shouldn't be a Sablotron bug, but I was hoping someone there would have more pointers to fix this, or find more information about it on their side... but I think the fix will be from the PHP team.

php configure:

./configure  --with-apxs=/usr/local/apache/bin/apxs
--with-mysql=/usr/local/mysql --enable-track-vars --with-curl
--with-openssl --enable-sockets --enable-shmop --enable-sysvsem
--enable-sysvshm --with-jpeg-dir=/usr/local --with-png-dir=/usr/local
--with-gd --with-zlib-dir=/usr --enable-xslt --with-expat-dir=/usr/local
--with-xslt-sablot

checking for XML support... yes
checking external libexpat install dir... yes
checking for XMLRPC-EPI support... no
checking libexpat dir for XMLRPC-EPI... yes
checking whether to enable xslt support... yes
checking whether to enable the XSLT Sablotron backend... yes
checking libexpat dir for Sablotron XSL support... yes
checking for Sablotron libraries in the default path... found Sablotron in
/usr/local
checking for iconv_open in -lc... yes
checking for SablotSetEncoding in -lsablot... yes
checking for YAZ support... no

^^ i believe that's as good as it can look. it found my system expat, and sablotron. apache doesnt even care about expat. everything seems to be reading from this central expat, so why doesn't it work?
 [2002-03-01 03:33 UTC] php at mike2k dot com
actually, i was using the function incorrectly. i was providing it strings when it was wanting filenames.

i wound up using the variable substitution (from php.net examples) and it worked, feeding it strings.

still this is a nasty bug that should be more graceful.
 [2002-03-01 03:36 UTC] derick@php.net
Making this critical because: 1. It's an easy fix 2. Documentation should be made better 3. I got bitten by it too :)

Derick
 [2002-03-02 23:04 UTC] kalowsky@php.net
assigning to Sterling as he seems to know this best (might be because he wrote it).  Any chance we can get this fixed for the next RC process?
 [2002-03-24 11:08 UTC] sterling@php.net
don't assign this to me...  :)
 [2002-05-12 13:15 UTC] derick@php.net
sterling, take care of you bugs please :)
 [2002-06-17 14:29 UTC] sterling@php.net
NO BUG
NO BUG
NO BUG
NO BUG
 [2002-06-17 14:42 UTC] hholzgra@php.net
<hartmut> sterling: IT SHALL NOT SEGFAULT, FOR WHATEVER STUPID REASON ...
<hartmut> sterling: IT SHALL NOT SEGFAULT, FOR WHATEVER STUPID REASON ...
<hartmut> sterling: IT SHALL NOT SEGFAULT, FOR WHATEVER STUPID REASON ...

 [2002-10-03 18:41 UTC] sterling@php.net
No longer the XSLT maintainer.  And hartmut, I'm not putting in a stat() call for every XSLT transformation - if you don't want it to segfault, contact the Sablotron folks, or make the fix yourself, I'm no longer the maintainer, so do what you like ;)

 [2002-10-03 18:42 UTC] sterling@php.net
No longer the XSLT maintainer.  And hartmut, I'm not putting in a stat() call for every XSLT transformation - if you don't want it to segfault, contact the Sablotron folks, or make the fix yourself, I'm no longer the maintainer, so do what you like ;)

 [2002-10-03 19:09 UTC] msopacua@php.net
Has already been fixed in Sablotron 0.95+.

Current documentation may be a bit desceptive describing 'string xml / string xsl' as arguments, but is in essence correct, if you read on.

The buffers in Sablotron library expected filenames and only reserved 512 bytes. Discussed with Derick, during 4.2.1 QA, whether PHP should guard against it, and that is not preferred.

Not a bug in php -> bogus
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Apr 27 00:01:30 2024 UTC