php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #26947 Crash by using DomDocument::getElementById()
Submitted: 2004-01-17 12:57 UTC Modified: 2004-01-18 21:36 UTC
From: olivier dot bichler at laposte dot net Assigned:
Status: Closed Package: DOM XML related
PHP Version: 5.0.0b3 (beta3) OS: *
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: olivier dot bichler at laposte dot net
New email:
PHP Version: OS:

 

 [2004-01-17 12:57 UTC] olivier dot bichler at laposte dot net
Description:
------------
PHP crash by using the DOM function getElementById() (PHP kill the Apache server process on Windows, with Apache v1.3.27 and v2.0.48).

Reproduce code:
---------------
<?php
$dom = new DomDocument;
$dom -> load('essai.xml');

if ($dom -> validate()) {
	$menu = new DomDocument;
	$menu = $dom -> getElementById('a');
	echo $menu -> firstChild -> data;
}
?>

essai.xml :
-----------

<?xml version="1.0"?>
<!DOCTYPE essai [
	<!ELEMENT essai (truc+)>

	<!ELEMENT truc (#PCDATA)>
	<!ATTLIST truc
		id	ID		#REQUIRED>
]>

<essai>
	<truc id="a">1</truc>
</essai>

Expected result:
----------------
1

Actual result:
--------------
Nothing, PHP and the server crash...
There is the same result with an external doctype.
When I call getElementById(id) with an id who doesn't exist in the XML file, there is no crash.

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2004-01-17 20:23 UTC] sniper@php.net
Please try using this CVS snapshot:

  http://snaps.php.net/php5-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5-win32-latest.zip


 [2004-01-18 05:13 UTC] chregu@php.net
It only crashes, if you use validate(). Without it seems to work.

I'm looking into it.


 [2004-01-18 07:52 UTC] chregu@php.net
This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.


 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Thu Jan 30 19:01:29 2025 UTC