iliaa Thu Jun 19 12:35:17 2003 EDT Modified files: /php4/ext/standard streamsfuncs.c Log: Fixed memory leak, when invalid context is specified. Index: php4/ext/standard/streamsfuncs.c diff -u php4/ext/standard/streamsfuncs.c:1.19 php4/ext/standard/streamsfuncs.c:1.20 --- php4/ext/standard/streamsfuncs.c:1.19 Thu Jun 19 12:10:54 2003 +++ php4/ext/standard/streamsfuncs.c Thu Jun 19 12:35:17 2003 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: streamsfuncs.c,v 1.19 2003/06/19 16:10:54 iliaa Exp $ */ +/* $Id: streamsfuncs.c,v 1.20 2003/06/19 16:35:17 iliaa Exp $ */ #include "php.h" #include "php_globals.h" @@ -669,10 +669,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); @@ -684,10 +684,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