derick          Tue Jul  8 19:29:19 2008 UTC

  Modified files:              (Branch: PHP_5_3)
    /php-src/ext/date   php_date.c 
  Log:
  - MFH: Fixed a memleak (Original patch by Hannes Magnusson).
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/date/php_date.c?r1=1.43.2.45.2.51.2.40&r2=1.43.2.45.2.51.2.41&diff_format=u
Index: php-src/ext/date/php_date.c
diff -u php-src/ext/date/php_date.c:1.43.2.45.2.51.2.40 
php-src/ext/date/php_date.c:1.43.2.45.2.51.2.41
--- php-src/ext/date/php_date.c:1.43.2.45.2.51.2.40     Tue Jul  8 17:55:40 2008
+++ php-src/ext/date/php_date.c Tue Jul  8 19:29:18 2008
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: php_date.c,v 1.43.2.45.2.51.2.40 2008/07/08 17:55:40 derick Exp $ */
+/* $Id: php_date.c,v 1.43.2.45.2.51.2.41 2008/07/08 19:29:18 derick Exp $ */
 
 #include "php.h"
 #include "php_streams.h"
@@ -3148,11 +3148,13 @@
        GET_VALUE_FROM_STRUCT(invert, "invert");
        GET_VALUE_FROM_STRUCT(days, "days");
 
+       ALLOC_INIT_ZVAL(retval);
+       Z_SET_REFCOUNT_P(retval, 0);
+
        if (value == -1) {
                php_error_docref(NULL TSRMLS_CC, E_ERROR, "Unknown property 
(%s)", Z_STRVAL_P(member));
        }
 
-       ALLOC_INIT_ZVAL(retval);
        ZVAL_LONG(retval, value);
 
        if (member == &tmp_member) {
@@ -3168,6 +3170,7 @@
 {
        php_interval_obj *obj;
        zval tmp_member, tmp_value;
+       int found = 0;
 
        if (member->type != IS_STRING) {
                tmp_member = *member;
@@ -3185,6 +3188,7 @@
                        convert_to_long(&tmp_value);      \
                        value = &tmp_value;               \
                }                                     \
+               found = 1;                            \
                obj->diff->n = Z_LVAL_P(value); \
                if (value == &tmp_value) {         \
                        zval_dtor(value);              \
@@ -3199,7 +3203,7 @@
        SET_VALUE_FROM_STRUCT(s, "s");
        SET_VALUE_FROM_STRUCT(invert, "invert");
 
-       if (value == -1) {
+       if (!found) {
                php_error_docref(NULL TSRMLS_CC, E_ERROR, "Unknown property 
(%s)", Z_STRVAL_P(member));
        }
 



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

Reply via email to