felipe          Tue Apr  7 20:03:00 2009 UTC

  Modified files:              
    /php-src/ext/date   php_date.c 
  Log:
  - Fixed bug #46108 (DateTime - Memory leak when unserializing)
  
http://cvs.php.net/viewvc.cgi/php-src/ext/date/php_date.c?r1=1.222&r2=1.223&diff_format=u
Index: php-src/ext/date/php_date.c
diff -u php-src/ext/date/php_date.c:1.222 php-src/ext/date/php_date.c:1.223
--- php-src/ext/date/php_date.c:1.222   Fri Mar 27 19:22:18 2009
+++ php-src/ext/date/php_date.c Tue Apr  7 20:03:00 2009
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: php_date.c,v 1.222 2009/03/27 19:22:18 bjori Exp $ */
+/* $Id: php_date.c,v 1.223 2009/04/07 20:03:00 felipe Exp $ */
 
 #include "php.h"
 #include "php_streams.h"
@@ -2382,10 +2382,6 @@
 /* Advanced Interface */
 static zval * date_instantiate(zend_class_entry *pce, zval *object TSRMLS_DC)
 {
-       if (!object) {
-               ALLOC_ZVAL(object);
-       }
-
        Z_TYPE_P(object) = IS_OBJECT;
        object_init_ex(object, pce);
        Z_SET_REFCOUNT_P(object, 1);
@@ -2575,12 +2571,14 @@
 
                                                tzi = 
php_date_parse_tzfile(Z_STRVAL_PP(z_timezone), DATE_TIMEZONEDB TSRMLS_CC);
 
+                                               ALLOC_INIT_ZVAL(tmp_obj);
                                                tzobj = 
zend_object_store_get_object(tmp_obj = date_instantiate(date_ce_timezone, 
tmp_obj TSRMLS_CC) TSRMLS_CC);
                                                tzobj->type = 
TIMELIB_ZONETYPE_ID;
                                                tzobj->tzi.tz = tzi;
                                                tzobj->initialized = 1;
 
                                                date_initialize(*dateobj, 
Z_STRVAL_PP(z_date), Z_STRLEN_PP(z_date), NULL, tmp_obj, 0 TSRMLS_CC);
+                                               zval_ptr_dtor(&tmp_obj);
                                                return 1;
                                }
                        }



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

Reply via email to