php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #8425 PHP crashes if I include a page that uses xml parser.
Submitted: 2000-12-26 12:09 UTC Modified: 2001-01-03 07:41 UTC
From: kirys at kt2k dot com Assigned:
Status: Closed Package: Reproducible Crash
PHP Version: 4.0.4 OS: Windows NT 4.0
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: kirys at kt2k dot com
New email:
PHP Version: OS:

 

 [2000-12-26 12:09 UTC] kirys at kt2k dot com
The same script doesn't crash if used under v4.0.3
no additional modules used
The page MUST be included in a php file


Script Source code:
<?php
echo ".";
$file = "xml/links.xml";
$depth = array();
function startElement($parser, $name, $attrs) {
    global $depth;
  //  for ($i = 0; $i < $depth[$parser]; $i++) {}
	switch ($name){
	case "LINKPAGE";
		print"<TABLE WIDTH=\"98%\" CELLSPACING=2 CELLPADDING=1
BORDER=0>\n";
		print"<TR BGCOLOR=\"Blue\"><TD
CLASS=\"ListTitle2\">Title</TD><TD
CLASS=\"ListTitle2\">Vote</TD><TD
CLASS=\"ListTitle2\">Comments</TD></TR>\n";
		break;
	case "LINK":
		print "<TR><TD CLASS=\"ListTitle2\"><A CLASS=\"Menu\"
HREF=\"".$attrs["URL"]."\">".$attrs["TITLE"]."</A></TD>";
		print "<TD BGCOLOR=\"Silver\"
ALIGN=\"CENTER\">".$attrs["VOTE"]."</TD><TD
BGCOLOR=\"Silver\">";
		break;
	case "SECTION":
		print "<TR><TD CLASS=\"ListTitle\" COLSPAN=3><CENTER>";
		break;
	default:
		print "<TD>";

    }

    $depth[$parser]++;
}

function endElement($parser, $name) {
    global $depth;
	switch ($name){
	case "LINKPAGE";
		print"<TR><TD Class=\"ListNote\" COLSPAN=3>";
		print"<B>Notes</B><BR>";
		print"?/10: Means that I didn't decided a vote for that site yet";
		print"</TD></TR>";
		print"</TABLE>\n";
		break;
	case "SECTION":
		print "</CENTER></TD></TR>";
		break;
	case "LINK":
		echo"</TD></TR>";
		break;
	default:
		echo"</TD></TR>\n";

	}
    $depth[$parser]--;
}

function characterData($parser, $data) {
    print "$data";
}

echo ".";
$xml_parser = xml_parser_create();
echo ".";
xml_set_element_handler($xml_parser, "startElement",
"endElement");
echo ".";
xml_set_character_data_handler($xml_parser, "characterData");
if (!($fp = fopen($file, "r"))) {
    die("could not open XML input");
}

while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d",

xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);


 ?>

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-01-03 07:41 UTC] sniper@php.net
This is fixed in CVS. Wait for PHP 4.0.4pl1 to be released.

--Jani
 
PHP Copyright © 2001-2026 The PHP Group
All rights reserved.
Last updated: Fri Jul 03 13:00:01 2026 UTC