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

Reply via email to