cvs: php-src(PHP_5_2) /ext/xmlrpc xmlrpc-epi-php.c

From: Date: Fri, 18 Jul 2008 17:34:07 +0000
Subject: cvs: php-src(PHP_5_2) /ext/xmlrpc xmlrpc-epi-php.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-51237@lists.php.net to get a copy of this message
felipe Fri Jul 18 17:34:07 2008 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/xmlrpc xmlrpc-epi-php.c Log: - Fixed bug #45556 (Return value from callback isn't freed) http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/xmlrpc-epi-php.c?r1=1.39.2.5.2.10&r2=1.39.2.5.2.11&diff_format=u Index: php-src/ext/xmlrpc/xmlrpc-epi-php.c diff -u php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.39.2.5.2.10 php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.39.2.5.2.11 --- php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.39.2.5.2.10 Fri Jul 18 15:52:38 2008 +++ php-src/ext/xmlrpc/xmlrpc-epi-php.c Fri Jul 18 17:34:07 2008 @@ -51,7 +51,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: xmlrpc-epi-php.c,v 1.39.2.5.2.10 2008/07/18 15:52:38 felipe Exp $ */ +/* $Id: xmlrpc-epi-php.c,v 1.39.2.5.2.11 2008/07/18 17:34:07 felipe Exp $ */ /********************************************************************** * BUGS: * @@ -877,15 +877,12 @@ */ static void php_xmlrpc_introspection_callback(XMLRPC_SERVER server, void* data) { - zval *retval_ptr, **php_function; + zval retval, **php_function; zval* callback_params[1]; char *php_function_name; xmlrpc_callback_data* pData = (xmlrpc_callback_data*)data; TSRMLS_FETCH(); - MAKE_STD_ZVAL(retval_ptr); - Z_TYPE_P(retval_ptr) = IS_NULL; - /* setup data hoojum */ callback_params[0] = pData->caller_params; @@ -896,14 +893,14 @@ if (zend_is_callable(*php_function, 0, &php_function_name)) { /* php func prototype: function string user_func($user_params) */ - if (call_user_function(CG(function_table), NULL, *php_function, retval_ptr, 1, callback_params TSRMLS_CC) == SUCCESS) { + if (call_user_function(CG(function_table), NULL, *php_function, &retval, 1, callback_params TSRMLS_CC) == SUCCESS) { XMLRPC_VALUE xData; STRUCT_XMLRPC_ERROR err = {0}; /* return value should be a string */ - convert_to_string(retval_ptr); + convert_to_string(&retval); - xData = XMLRPC_IntrospectionCreateDescription(Z_STRVAL_P(retval_ptr), &err); + xData = XMLRPC_IntrospectionCreateDescription(Z_STRVAL(retval), &err); if(xData) { if(!XMLRPC_ServerAddIntrospectionData(server, xData)) { @@ -919,6 +916,7 @@ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to add introspection data returned from %s()", php_function_name); } } + zval_dtor(&retval); } else { /* user func failed */ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Error calling user introspection callback: %s()", php_function_name);

« previous php.cvs (#51237) next »