]> granicus.if.org Git - php/commitdiff
- Fixed bug #49142 (crash when exception thrown from __tostring())
authorDavid Soria Parra <dsp@php.net>
Tue, 27 Oct 2009 13:02:36 +0000 (13:02 +0000)
committerDavid Soria Parra <dsp@php.net>
Tue, 27 Oct 2009 13:02:36 +0000 (13:02 +0000)
Zend/zend.c

index a2e5114f80b18ca9d3d5638a1eb7bba37de3514a..7fa245f109e2aff2e3ff140883961509fc48fe80 100644 (file)
@@ -1661,9 +1661,14 @@ ZEND_API void zend_error(int type, const char *format, ...) /* {{{ */
                        if (!EG(active_symbol_table)) {
                                zend_rebuild_symbol_table(TSRMLS_C);
                        }
-                       Z_ARRVAL_P(z_context) = EG(active_symbol_table);
-                       Z_TYPE_P(z_context) = IS_ARRAY;
-                       zval_copy_ctor(z_context);
+                       /* during shutdown the symbol table table can be still null */
+                       if (!EG(active_symbol_table)) {
+                               Z_TYPE_P(z_context) = IS_NULL;
+                       } else {
+                               Z_ARRVAL_P(z_context) = EG(active_symbol_table);
+                               Z_TYPE_P(z_context) = IS_ARRAY;
+                               zval_copy_ctor(z_context);
+                       }
 
                        params = (zval ***) emalloc(sizeof(zval **)*5);
                        params[0] = &z_error_type;