#33116 [Asn->Csd]: crash when assigning class name to global variable in __autoload
ID: 33116
Updated by: dmitry@php.net
Reported By: segv74 at gmail dot com
-Status: Assigned
+Status: Closed
Bug Type: Reproducible crash
Operating System: linux 2.4.28
PHP Version: 5.0.3
Assigned To: dmitry
New Comment:
Fixed in CVS HEAD and PHP_5_0.
Previous Comments:
------------------------------------------------------------------------
[2005-05-26 03:29:10] segv74 at gmail dot com
patch below seems works fine.
$ diff Zend/zend_execute_API.c zend_execute_API.c
911c911
< zval class_name, *class_name_ptr = &class_name;
---
> zval *class_name_ptr;
950,951c950,951
< INIT_PZVAL(class_name_ptr);
< ZVAL_STRINGL(class_name_ptr, name, name_length, 0);
---
> MAKE_STD_ZVAL(class_name_ptr);
> ZVAL_STRINGL(class_name_ptr, name, name_length, 1);
------------------------------------------------------------------------
[2005-05-24 10:02:22] sniper@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php5-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5-win32-latest.zip
This one has some other (propably) related bugs fixed.
So please try it out too.
------------------------------------------------------------------------
[2005-05-24 09:59:36] segv74 at gmail dot com
last backtrace data of gdb was slightly diffrent examples.
( using static member variables instead of $GLOBALS )
but, both two source cause segment fault and produce wrong output on
php snapshot.
------------------------------------------------------------------------
[2005-05-24 09:56:04] segv74 at gmail dot com
php5-STABLE-latest.tar.gz shows same buggy results too.
(gdb) bt
#0 0x08170036 in _efree (ptr=0xbfffd040) at
/home/ssw/work/php5-STABLE-200505240632/Zend/zend_alloc.c:281
#1 0x08189ae8 in zend_hash_destroy (ht=0x827ca24) at
/home/ssw/work/php5-STABLE-200505240632/Zend/zend_hash.c:519
#2 0x081821d7 in _zval_dtor (zvalue=0x827ca8c) at
/home/ssw/work/php5-STABLE-200505240632/Zend/zend_variables.c:52
#3 0x08179b48 in _zval_ptr_dtor (zval_ptr=0x827cab8) at
/home/ssw/work/php5-STABLE-200505240632/Zend/zend_execute_API.c:400
#4 0x08189bb8 in zend_hash_clean (ht=0x827c89c) at
/home/ssw/work/php5-STABLE-200505240632/Zend/zend_hash.c:545
#5 0x0817c79e in zend_cleanup_class_data (pce=0x827e08c) at
/home/ssw/work/php5-STABLE-200505240632/Zend/zend_opcode.c:139
#6 0x08189dd8 in zend_hash_apply (ht=0x81ffdb0, apply_func=0x817c770
<zend_cleanup_class_data>) at
/home/ssw/work/php5-STABLE-200505240632/Zend/zend_hash.c:664
#7 0x0817988c in shutdown_executor () at
/home/ssw/work/php5-STABLE-200505240632/Zend/zend_execute_API.c:257
#8 0x081834c5 in zend_deactivate () at
/home/ssw/work/php5-STABLE-200505240632/Zend/zend.c:824
#9 0x0814d326 in php_request_shutdown (dummy=0x0) at
/home/ssw/work/php5-STABLE-200505240632/main/main.c:1224
#10 0x081ad55c in main (argc=2, argv=0xbffff654) at
/home/ssw/work/php5-STABLE-200505240632/sapi/cgi/cgi_main.c:1640
(gdb) up
...
#4 0x08189bb8 in zend_hash_clean (ht=0x827c89c) at
/home/ssw/work/php5-STABLE-200505240632/Zend/zend_hash.c:545
545 ht->pDestructor(q->pData);
(gdb) print (char *)&*q.arKey
$6 = 0x827cacc "included_classes"
------------------------------------------------------------------------
[2005-05-24 09:27:30] tony2001@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php5-STABLE-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5.0-win32-latest.zip
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/33116
--
Edit this bug report at http://bugs.php.net/?id=33116&edit=1
Thread (8 messages)