Re: incomplete class broken?

From: Date: Sun, 05 Aug 2001 15:14:15 +0000
Subject: Re: incomplete class broken?
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-62152@lists.php.net to get a copy of this message
On Sun, Aug 05, 2001 at 01:46:35PM +0200, Thies C. Arntzen wrote: > > hi, > the following code breaks php: after some more testing: it seems that one can no longer call "zend_register_internal_class" when the script is already executing. my testscript unserializes an object from a class that has no definition loaded, so we call php_create_incomplete_class() to setup our "incomplete class". this used to work just fine... ... zend_class_entry *php_create_incomplete_class(TSRMLS_D) { zend_class_entry incomplete_class; INIT_OVERLOADED_CLASS_ENTRY(incomplete_class, INCOMPLETE_CLASS, NULL, incomplete_class_call_func, incomplete_class_get_property, incomplete_class_set_property); BG(incomplete_class) = zend_register_internal_class(&incomplete_class TSRMLS_CC); return (BG(incomplete_class)); } ... this together with (atleast) one user-level class will cause the mentioned crash. i tend to think that something in zend is causing this. zeev, andi? BTW: if i call php_create_incomplete_class() from MINIT(basic_functions) the problem "goes away". tc > > <?php > class tubu { } > $thies = unserialize('O:1:"a":0:{}'); > ?> > > X-Powered-By: PHP/4.0.7-dev > Content-type: text/html > > ../../php4/Zend/zend_hash.c(176) : Freeing 0x084B3A54 (64 bytes), script=../ser2.php > Last leak repeated 1 time > ../../php4/Zend/zend_compile.c(1532) : Freeing 0x084B39AC (4 bytes), script=../ser2.php > ../../php4/Zend/zend_language_scanner.l(1144) : Freeing 0x084B390C (5 bytes), > script=../ser2.php > [Sun Aug 5 13:44:17 2001] Script: '../ser2.php' > --------------------------------------- > ../../php4/Zend/zend_opcode.c(117) : Block 0x084B3988 status: > Beginning: Overrun (magic=0x08450298, expected=0x7312F8DC) > End: Unknown > --------------------------------------- > [Sun Aug 5 13:44:17 2001] Script: '../ser2.php' > --------------------------------------- > ../../php4/Zend/zend_hash.c(548) : Block 0x084B39C0 status: > Beginning: Overrun (magic=0x40B49080, expected=0x7312F8DC) > End: Unknown > --------------------------------------- > [Sun Aug 5 13:44:17 2001] Script: '../ser2.php' > --------------------------------------- > ../../php4/Zend/zend_hash.c(548) : Block 0x084B3A30 status: > Beginning: Overrun (magic=0x40B49040, expected=0x7312F8DC) > End: Unknown > --------------------------------------- > > if you comment out the tubu class everything works. i'm not > too sure if this is due to saschas work in var.c or some > changes in the engine. > > does anybody have a clue what might be wrong? > > re, > tc > > > -- > PHP Development Mailing List <http://www.php.net/> > To unsubscribe, e-mail: php-dev-unsubscribe@lists.php.net > For additional commands, e-mail: php-dev-help@lists.php.net > To contact the list administrators, e-mail: php-list-admin@lists.php.net >

« previous php.dev (#62152) next »