tony2001                Wed Mar 22 22:05:52 2006 UTC

  Modified files:              (Branch: PHP_5_1)
    /php-src/ext/standard       array.c 
  Log:
  prevent segfault when exception is thrown from Countable::count()
  
  
http://cvs.php.net/viewcvs.cgi/php-src/ext/standard/array.c?r1=1.308.2.19&r2=1.308.2.20&diff_format=u
Index: php-src/ext/standard/array.c
diff -u php-src/ext/standard/array.c:1.308.2.19 
php-src/ext/standard/array.c:1.308.2.20
--- php-src/ext/standard/array.c:1.308.2.19     Sun Mar 19 22:11:36 2006
+++ php-src/ext/standard/array.c        Wed Mar 22 22:05:51 2006
@@ -21,7 +21,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: array.c,v 1.308.2.19 2006/03/19 22:11:36 tony2001 Exp $ */
+/* $Id: array.c,v 1.308.2.20 2006/03/22 22:05:51 tony2001 Exp $ */
 
 #include "php.h"
 #include "php_ini.h"
@@ -312,8 +312,10 @@
 
                        if (Z_OBJ_HT_P(array)->get_class_entry && 
instanceof_function(Z_OBJCE_P(array), spl_ce_Countable TSRMLS_CC)) {
                                zend_call_method_with_0_params(&array, NULL, 
NULL, "count", &retval);
-                               RETVAL_LONG(Z_LVAL_P(retval));
-                               zval_ptr_dtor(&retval);
+                               if (retval) {
+                                       RETVAL_LONG(Z_LVAL_P(retval));
+                                       zval_ptr_dtor(&retval);
+                               }
                                return;
                        }
 #endif

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to