ID: 6175
User Update by: [EMAIL PROTECTED]
Status: Open
Bug Type: *XML functions
Description: XML functions no longer work in objects

Yes.  If these lines are used in an object's constructor:

$this->parser = xml_parser_create();
xml_set_object($this->parser, $this);
xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, true);
xml_set_element_handler($this->parser, 'startElement', 'endElement');
xml_set_character_data_handler($this->parser, 'defaultHandler');

... Apache will segfault with the following backtrace:

#0  0x3 in ?? ()
#1  0x281e2391 in call_user_function_ex (function_table=0x80b9280, 
    object_pp=0x80ffcc0, function_name=0x8148dcc, retval_ptr_ptr=0xbfbfd14c, 
    param_count=2, params=0x81487ac, no_separation=1, symbol_table=0x0)
    at zend_execute_API.c:397
#2  0x281e2111 in call_user_function (function_table=0x80b9280, 
    object_pp=0x80ffcc0, function_name=0x8148dcc, retval_ptr=0x80d570c, 
    param_count=2, params=0xbfbfd1e8) at zend_execute_API.c:325
#3  0x2828ad5c in xml_call_handler (parser=0x80ffc8c, handler=0x8148dcc, 
    argc=2, argv=0xbfbfd1e8) at xml.c:386
#4  0x2828b98d in _xml_characterDataHandler (userData=0x80ffc8c, 
    s=0xbfbfd257 "\n ^-(\f\020\022\b0\020\022\b\2059\025\b", len=1)
    at xml.c:804
#5  0x2829cf38 in doContent (parser=0x8101400, startTagLevel=0, 
    enc=0x282d5e20, 
    s=0x8121046 "\n    <title>Message Composition: Actions</title>\n    
<heading>Actions</heading>\n    <para>\n    Send Message launches your email to the 
intended recipient(s). Be sure you want to send before clicking h"..., 
    end=0x8123e29 "", nextPtr=0x0) at xmlparse.c:1383
#6  0x2829c37d in contentProcessor (parser=0x8101400, 
    start=0x8121022 "<help>\n\n<entry id=\"compose-buttons\">\n    <title>Message 
Composition: Actions</title>\n    <heading>Actions</heading>\n    <para>\n    Send 
Message launches your email to the intended recipient(s). Be sur"..., 
    end=0x8123e29 "", endPtr=0x0) at xmlparse.c:957
#7  0x2829e29d in prologProcessor (parser=0x8101400, 
    s=0x8121022 "<help>\n\n<entry id=\"compose-buttons\">\n    <title>Message 
Composition: Actions</title>\n    <heading>Actions</heading>\n    <para>\n    Send 
Message launches your email to the intended recipient(s). Be sur"..., 
    end=0x8123e29 "", nextPtr=0x0) at xmlparse.c:2036
#8  0x2829dfb2 in prologInitProcessor (parser=0x8101400, 
    s=0x812100c "<?xml version='1.0'?>\n<help>\n\n<entry id=\"compose-buttons\">\n    
<title>Message Composition: Actions</title>\n    <heading>Actions</heading>\n    
<para>\n    Send Message launches your email to the intende"..., 
    end=0x8123e29 "", nextPtr=0x0) at xmlparse.c:1967
#9  0x2829bef8 in php_XML_Parse (parser=0x8101400, 
    s=0x812100c "<?xml version='1.0'?>\n<help>\n\n<entry id=\"compose-buttons\">\n    
<title>Message Composition: Actions</title>\n    <heading>Actions</heading>\n    
<para>\n    Send Message launches your email to the intende"..., 
    len=11805, isFinal=1) at xmlparse.c:779
#10 0x2828c836 in php_if_xml_parse (ht=3, return_value=0x8148f0c, 
    this_ptr=0x0, return_value_used=0) at xml.c:1394
#11 0x281dbf01 in execute (op_array=0x8129d0c) at ./zend_execute.c:1494
#12 0x281dc154 in execute (op_array=0x80ff98c) at ./zend_execute.c:1534
#13 0x281e9e86 in zend_execute_scripts (type=8, file_count=3) at zend.c:743
#14 0x281fb6dc in php_execute_script (primary_file=0xbfbff7dc) at main.c:1194
#15 0x281f8006 in apache_php_module_main (r=0x8112034, display_source_mode=0)
    at sapi_apache.c:89
#16 0x281f8996 in send_php (r=0x8112034, display_source_mode=0, filename=0x0)
    at mod_php4.c:521
#17 0x281f89d2 in send_parsed_php (r=0x8112034) at mod_php4.c:532
#18 0x8053fa1 in ap_invoke_handler ()
#19 0x80686a8 in process_request_internal ()
#20 0x8068712 in ap_process_request ()
#21 0x805f6df in child_main ()
---Type <return> to continue, or q <return> to quit---
#22 0x805f89d in make_child ()
#23 0x805fa16 in startup_children ()
#24 0x8060024 in standalone_main ()
#25 0x806083c in main ()
#26 0x804eaa1 in _start ()

Previous Comments:
---------------------------------------------------------------------------

[2001-04-01 13:18:12] [EMAIL PROTECTED]
I believe it's still a problem, but I'll have to recreate my test case.  I'll try and 
get to it soon.

---------------------------------------------------------------------------

[2001-03-31 11:17:17] [EMAIL PROTECTED]
do you still experience this error?

---------------------------------------------------------------------------

[2000-08-31 15:00:35] [EMAIL PROTECTED]
With today's CVS, including Andrei's latest change to xml.c (rev. 1.61), I can 
generate a backtrace for the segfault that occurs when calling the xml_* routines from 
the constructor:

Starting program: /usr/local/src/apache_1.3.12/src/httpd -X

Program received signal SIGSEGV, Segmentation fault.
0x80e3a0e in _efree (ptr=0x5a5a5a5a, 
    __zend_filename=0x81bb1a9 "zend_variables.c", __zend_lineno=98, 
    __zend_orig_filename=0x0, __zend_orig_lineno=0) at zend_alloc.c:196
196             CALCULATE_REAL_SIZE_AND_CACHE_INDEX(p->size);
(gdb) bt
#0  0x80e3a0e in _efree (ptr=0x5a5a5a5a, 
    __zend_filename=0x81bb1a9 "zend_variables.c", __zend_lineno=98, 
    __zend_orig_filename=0x0, __zend_orig_lineno=0) at zend_alloc.c:196
#1  0x80eea7e in zval_del_ref (p=0x8263b3c) at zend_variables.c:98
#2  0x80dc0cd in xml_parser_dtor (parser=0x8263b24) at xml.c:302
#3  0x80f3dc1 in list_entry_destructor (ptr=0x82d3be4) at zend_list.c:253
#4  0x80f2b1d in zend_hash_apply_deleter (ht=0x824b880, p=0x82b70a4)
    at zend_hash.c:619
#5  0x80f2c3e in zend_hash_graceful_destroy (ht=0x824b880) at zend_hash.c:670
#6  0x80f3e97 in zend_destroy_rsrc_list () at zend_list.c:298
#7  0x80e9490 in shutdown_executor () at zend_execute_API.c:179
#8  0x80ef604 in zend_deactivate () at zend.c:520
#9  0x808070b in php_request_shutdown (dummy=0x0) at main.c:659
#10 0x807e887 in php_apache_request_shutdown (dummy=0x0) at mod_php4.c:291
#11 0x8124ee5 in run_cleanups (c=0x82b30f4) at alloc.c:1706
#12 0x812359b in ap_clear_pool (a=0x82b200c) at alloc.c:531
#13 0x812361b in ap_destroy_pool (a=0x82b200c) at alloc.c:561
#14 0x8123587 in ap_clear_pool (a=0x826600c) at alloc.c:528
#15 0x8133165 in child_main (child_num_arg=0) at http_main.c:3900
#16 0x81337a5 in make_child (s=0x8252034, slot=0, now=967748297)
    at http_main.c:4281
#17 0x813391e in startup_children (number_to_start=3) at http_main.c:4363
#18 0x8133f28 in standalone_main (argc=2, argv=0xbfbffa48) at http_main.c:4651
#19 0x8134740 in main (argc=2, argv=0xbfbffa48) at http_main.c:4978

>From Apache's error log:

httpd in free(): warning: chunk is already free.
httpd in free(): warning: chunk is already free.
httpd in free(): warning: chunk is already free.
httpd in free(): warning: chunk is already free.
httpd in free(): warning: chunk is already free.
httpd in free(): warning: chunk is already free.
httpd in free(): warning: chunk is already free.
httpd in free(): warning: chunk is already free.
httpd in free(): warning: chunk is already free.
httpd in free(): warning: chunk is already free.
httpd in free(): warning: chunk is already free.
httpd in free(): warning: chunk is already free.
httpd in free(): warning: chunk is already free.
[Thu Aug 31 08:57:05 2000] [notice] child pid 57954 exit signal Segmentation fault (11)

---------------------------------------------------------------------------

[2000-08-23 10:30:05] [EMAIL PROTECTED]
If you're referring to Andrei's changes that accept the array($this, 'fooHandler') 
syntax, no, it doesn't fix my problem, and I actually haven't gotten the new syntax to 
work correctly, either.  I'll try and look into it some more later today.

---------------------------------------------------------------------------

[2000-08-23 08:29:41] [EMAIL PROTECTED]
Wasn't this just fixed in cvs??

--Jani

---------------------------------------------------------------------------

The remainder of the comments for this report are too long.  To view the rest of the 
comments, please view the bug report online.

Full Bug description available at: http://bugs.php.net/?id=6175


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to