Bug #14783 Updated: Using unlink causes segfault
| From: | mfkahn2 at yahoo dot com | Date: | Tue, 01 Jan 2002 21:14:37 +0000 |
| Subject: | Bug #14783 Updated: Using unlink causes segfault | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-75526@lists.php.net to get a copy of this message | ||
ID: 14783
User updated by: mfkahn2@yahoo.com
Reported By: mfkahn2@yahoo.com
Old Status: Feedback
Status: Open
Bug Type: DOM XML related
Operating System: RH6.2/Apache/libxml2.4.12
PHP Version: CVS Jan. 1 2002
New Comment:
My configuration notes:
- PHP built as DSO, apache with disable-rule=EXPAT
Here's my PHP build configuration:
./configure --with-pgsql --prefix=/usr/local/apache --with-apxs=/usr/local/apache/bin/apxs
--with-pdflib=shared --with-dom=/usr/local/lib --enable-xslt --with-xslt-sablot=/usr/local
--with-expat=/usr/local --with-zlib --with-gd=/usr/local --with-jpeg-dir=/usr --with-png-dir=/usr
--with-t1lib=/usr/local
Another note:
I didn't find issues every time I unlinked a node, only when I unlinked (it seems) all the
nodes selected--either from an XPath query or a children() call. And I noted that the did in fact
occur during clean-up, not the unlink calls (no real debug, just through writing error_log messages
at certain points in the PHP script).
Previous Comments:
------------------------------------------------------------------------
[2002-01-01 12:45:41] mfischer@php.net
Did the same before I replied and it didn't crash, hm.
What were your ./configure options?
Do you have another small, self-contained sample?
Feedback.
------------------------------------------------------------------------
[2002-01-01 11:15:45] mfkahn2@yahoo.com
Just checked out and built from CVS this morning (2002/1/1). The test script still crashes.
------------------------------------------------------------------------
[2002-01-01 07:11:54] mfischer@php.net
This has been fixed in CVS.
------------------------------------------------------------------------
[2001-12-31 16:16:27] mfkahn2@yahoo.com
Symptoms:
- using unlink() causes segfault
Script to reproduce:
<?php
$xml = <<<END_XML
<?xml version="1.0"?>
<test>
<foo id="x">Hello</foo>
<foo id="y">World</foo>
</test>
END_XML;
$dom = xmldoc($xml);
// this so I can see it.
header('Content-type: text/plain');
$ctx = $dom->xpath_new_context();
$res = xpath_eval($ctx,"//foo");
foreach ($res->nodeset as $child) {
$child->unlink();
}
echo $dom->dumpmem();
?>
Other notes:
- some cursory debugging I did suggested that it was the cleanup routines at the end of the script
that were causing the crash. Looking at php_domxml.c, the recursive node memory cleanup appears to
be choking on a pointer already freed during the unlink() call.
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=14783&edit=1