iliaa Thu Jun 19 12:35:29 2003 EDT Modified files: (Branch: PHP_4_3) /php4/ext/standard file.c Log: MFH: Fixed memory leak, when invalid context is specified. Index: php4/ext/standard/file.c diff -u php4/ext/standard/file.c:1.279.2.26 php4/ext/standard/file.c:1.279.2.27 --- php4/ext/standard/file.c:1.279.2.26 Thu Jun 19 12:10:37 2003 +++ php4/ext/standard/file.c Thu Jun 19 12:35:29 2003 @@ -21,7 +21,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: file.c,v 1.279.2.26 2003/06/19 16:10:37 iliaa Exp $ */ +/* $Id: file.c,v 1.279.2.27 2003/06/19 16:35:29 iliaa Exp $ */ /* Synced with php 3.0 revision 1.218 1999-06-16 [ssb] */ @@ -905,10 +905,10 @@ static int parse_context_params(php_stream_context *context, zval *params) { - int ret = SUCCESS; + int ret = FAILURE; zval **tmp; - if (SUCCESS == zend_hash_find(Z_ARRVAL_P(params), "notification", sizeof("notification"), (void**)&tmp)) { + if ((ret = zend_hash_find(Z_ARRVAL_P(params), "notification", sizeof("notification"), (void**)&tmp)) == SUCCESS) { if (context->notifier) { php_stream_notification_free(context->notifier); @@ -920,10 +920,14 @@ context->notifier->ptr = *tmp; ZVAL_ADDREF(*tmp); } - if (SUCCESS == zend_hash_find(Z_ARRVAL_P(params), "options", sizeof("options"), (void**)&tmp)) { + if ((ret = zend_hash_find(Z_ARRVAL_P(params), "options", sizeof("options"), (void**)&tmp)) == SUCCESS) { parse_context_options(context, *tmp); } - + + if (ret != SUCCESS) { + php_stream_context_free(context); + } + return ret; }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php