dmitry Thu Jun 9 04:19:18 2005 EDT
Modified files: (Branch: PHP_5_0)
/php-src/ext/standard user_filters.c
Log:
Fixed reference counting and probable crash on fclose() or shutdown
http://cvs.php.net/diff.php/php-src/ext/standard/user_filters.c?r1=1.28&r2=1.28.2.1&ty=u
Index: php-src/ext/standard/user_filters.c
diff -u php-src/ext/standard/user_filters.c:1.28
php-src/ext/standard/user_filters.c:1.28.2.1
--- php-src/ext/standard/user_filters.c:1.28 Mon Jun 21 17:08:05 2004
+++ php-src/ext/standard/user_filters.c Thu Jun 9 04:19:18 2005
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: user_filters.c,v 1.28 2004/06/21 21:08:05 pollita Exp $ */
+/* $Id: user_filters.c,v 1.28.2.1 2005/06/09 08:19:18 dmitry Exp $ */
#include "php.h"
#include "php_globals.h"
@@ -135,11 +135,6 @@
if (retval)
zval_ptr_dtor(&retval);
- if (SUCCESS == zend_hash_find(Z_OBJPROP_P(obj), "filter",
sizeof("filter"), (void**)&tmp)) {
- zend_list_delete(Z_LVAL_PP(tmp));
- FREE_ZVAL(*tmp);
- }
-
/* kill the object */
zval_ptr_dtor(&obj);
}
@@ -345,6 +340,8 @@
ZEND_REGISTER_RESOURCE(zfilter, filter, le_userfilters);
filter->abstract = obj;
add_property_zval(obj, "filter", zfilter);
+ /* add_property_zval increments the refcount which is unwanted here */
+ zval_ptr_dtor(&zfilter);
return filter;
}
@@ -470,6 +467,8 @@
ZEND_REGISTER_RESOURCE(zbucket, bucket, le_bucket);
object_init(return_value);
add_property_zval(return_value, "bucket", zbucket);
+ /* add_property_zval increments the refcount which is unwanted here */
+ zval_ptr_dtor(&zbucket);
add_property_stringl(return_value, "data", bucket->buf, bucket->buflen,
1);
add_property_long(return_value, "datalen", bucket->buflen);
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php