From: [EMAIL PROTECTED]
Operating system: linux
PHP version: 4.3.0
PHP Bug Type: Reproducible crash
Bug description: Php SegFault
$php file.php
Segmentation fault
$
---file.php---
<?
class zactivbox {
var $network;
var $proxy;
var $basename;
var $dom;
var $e_zactivbox;
function zactivbox (&$dom, $basename, $network, $proxy) {
$this->dom=& $dom;
$this->basename=$basename;
$this->network=$network;
$this->proxy=$proxy;
}
function &write_xml () {
$this->e_zactivbox=$this->dom->create_element('zactivbox');
$this->e_zactivbox->set_attribute('basename', $this->basename);
$this->e_zactivbox->append_child($network);
$this->e_zactivbox->append_child($proxy);
return $this->e_zactivbox;
}
}
class network {
var $servers; //array of server
var $route;
var $resolver;
var $dom;
var $e_network;
function network (&$dom, $servers, $route, $resolver) {
$this->dom=& $dom;
$this->servers=$servers;
$this->route=$route;
$this->resolver=$resolver;
}
function &write_xml() {
$this->e_network=$this->dom->create_element('network');
foreach($this->servers as $key => $server)
{
$this->e_network->append_child($server);
}
$this->e_network->append_child($this->route);
$this->e_network->append_child($this->resolver);
return $this->e_network;
}
}
class resolver {
var $domain;
var $search;
var $nameserver;
var $dom;
var $e_resolver;
function resolver (&$dom, $nameserver, $domain='', $search='') {
$this->dom=& $dom;
$this->domain=$domain;
$this->search=$search;
$this->nameserver=$nameserver;
}
function &write_xml() {
$this->e_resolver=$this->dom->create_element('resolver');
$e_domain=$this->dom->create_element('domain');
$t_domain=$this->dom->create_text_node($this->domain);
$e_domain->append_child($t_domain);
$this->e_resolver->append_child($e_domain);
$e_search=$this->dom->create_element('search');
$t_search=$this->dom->create_text_node($this->search);
$e_search->append_child($t_search);
$this->e_resolver->append_child($e_search);
$t_nameserver=$this->dom->create_text_node($this->nameserver);
$e_nameserver=$this->dom->create_element('nameserver');
$e_nameserver->append_child($t_nameserver);
$this->e_resolver->append_child($e_nameserver);
return $this->e_resolver;
}
}
class route {
var $destination;
var $iface;
var $ip;
var $dom;
var $e_route;
function route (&$dom, $destination, $ip, $iface) {
$this->dom=& $dom;
$this->destination=$destination;
$this->ip=$ip;
$this->iface=$iface;
}
function &write_xml() {
$this->e_route=$this->dom->create_element('route');
$this->e_route->set_attribute('destination', $this->destination);
$e_iface=$this->dom->create_element('iface');
$t_iface=$this->dom->create_text_node($this->iface);
$e_iface->append_child($t_iface);
$this->e_route->append_child($e_iface);
$e_ip=$this->dom->create_element('ip');
$t_ip=$this->dom->create_text_node($this->ip);
$e_ip->append_child($t_ip);
$this->e_route->append_child($e_ip);
return $this->e_route;
}
}
class interface {
var $iface;
var $ip;
var $broadcast;
var $netmask;
var $mode;
var $position;
var $type;
var $dom;
var $e_interface;
function &interface (&$dom, $iface, $ip, $broadcast, $netmask, $mode='',
$position='', $type='') {
$this->dom=& $dom;
$this->iface=$iface;
$this->ip=$ip;
$this->broadcast=$broadcast;
$this->netmask=$netmask;
$this->mode=$mode;
$this->position=$position;
$this->type=$type;
}
function &write_xml() {
$this->e_interface=$this->dom->create_element('interface');
if ( $this->mode != '' )
{
$this->e_interface->set_attribute('mode', $this->mode);
}
if ( $this->position != '' )
{
$this->e_interface->set_attribute('position',
$this->position);
}
if ( $this->type != '' )
{
$this->e_interface->set_attribute('type', $this->type);
}
$e_iface=$this->dom->create_element('iface');
$t_iface=$this->dom->create_text_node($this->iface);
$e_iface->append_child($t_iface);
$this->e_interface->append_child($e_iface);
$e_ip=$this->dom->create_element('ip');
$t_ip=$this->dom->create_text_node($this->ip);
$e_ip->append_child($t_ip);
$this->e_interface->append_child($e_ip);
$e_broadcast=$this->dom->create_element('broadcast');
$t_broadcast=$this->dom->create_text_node($this->broadcast);
$e_broadcast->append_child($t_broadcast);
$this->e_interface->append_child($e_broadcast);
$e_netmask=$this->dom->create_element('netmask');
$t_netmask=$this->dom->create_text_node($this->netmask);
$e_netmask->append_child($t_netmask);
$this->e_interface->append_child($e_netmask);
return $this->e_interface;
}
}
$dom=domxml_new_doc('1.0');
$int_eth0=new interface($dom,'eth0', $HTTP_GET_VARS['front_ip'],
$HTTP_GET_VARS['front_broadcast'],
$HTTP_GET_VARS['front_netmask'],'master', 'front');
$int_eth1=new interface($dom,'eth1', $HTTP_GET_VARS['back_ip'],
$HTTP_GET_VARS['back_broadcast'], $HTTP_GET_VARS['back_netmask'],'master',
'back');
$route=new route($dom,'default', $HTTP_GET_VARS['gateway'],'eth0');
$resolver=new resolver($dom,
$HTTP_GET_VARS['nameserver'],$HTTP_GET_VARS['domain'],"");
$int_eth0=$int_eth0->write_xml();
$int_eth1=$int_eth1->write_xml();
$route=$route->write_xml();
$resolver=$resolver->write_xml();
$seb=array($int_eth0,$int_eth1);
$network=new network($dom,$seb,$route,$resolver);
$network=$network->write_xml();
/*
$zactivbox=new zactivbox($dom, "pssl", $network, $proxy);
$zactivbox->write_xml();
$dom->dump_file('./zactivbox.xml',false,true);
*/
?>
--
Edit bug report at http://bugs.php.net/?id=21983&edit=1
--
Try a CVS snapshot: http://bugs.php.net/fix.php?id=21983&r=trysnapshot
Fixed in CVS: http://bugs.php.net/fix.php?id=21983&r=fixedcvs
Fixed in release: http://bugs.php.net/fix.php?id=21983&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=21983&r=needtrace
Try newer version: http://bugs.php.net/fix.php?id=21983&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=21983&r=support
Expected behavior: http://bugs.php.net/fix.php?id=21983&r=notwrong
Not enough info: http://bugs.php.net/fix.php?id=21983&r=notenoughinfo
Submitted twice: http://bugs.php.net/fix.php?id=21983&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=21983&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=21983&r=php3
Daylight Savings: http://bugs.php.net/fix.php?id=21983&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=21983&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=21983&r=gnused