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