derick          Tue Jul  8 19:29:07 2008 UTC

  Modified files:              
    /php-src/ext/date   php_date.c 
  Log:
  - Fixed a memleak (Original patch by Hannes Magnusson).
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/date/php_date.c?r1=1.191&r2=1.192&diff_format=u
Index: php-src/ext/date/php_date.c
diff -u php-src/ext/date/php_date.c:1.191 php-src/ext/date/php_date.c:1.192
--- php-src/ext/date/php_date.c:1.191   Tue Jul  8 17:56:35 2008
+++ php-src/ext/date/php_date.c Tue Jul  8 19:29:06 2008
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: php_date.c,v 1.191 2008/07/08 17:56:35 derick Exp $ */
+/* $Id: php_date.c,v 1.192 2008/07/08 19:29:06 derick Exp $ */
 
 #include "php.h"
 #include "php_streams.h"
@@ -3317,11 +3317,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) {
@@ -3337,6 +3339,7 @@
 {
        php_interval_obj *obj;
        zval tmp_member, tmp_value;
+       int found = 0;
 
        if (member->type != IS_STRING) {
                tmp_member = *member;
@@ -3354,6 +3357,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);              \
@@ -3368,7 +3372,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