From cb9686b0e5a6ac1e745dd4f48e64f55f91dd89aa Mon Sep 17 00:00:00 2001 From: Antony Dovgal Date: Mon, 14 Aug 2006 08:18:01 +0000 Subject: fix segfault and leak in ext/xmlrpc add tests --- ext/xmlrpc/xmlrpc-epi-php.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'ext/xmlrpc/xmlrpc-epi-php.c') diff --git a/ext/xmlrpc/xmlrpc-epi-php.c b/ext/xmlrpc/xmlrpc-epi-php.c index 69fe7534e9..0ed30b79a1 100644 --- a/ext/xmlrpc/xmlrpc-epi-php.c +++ b/ext/xmlrpc/xmlrpc-epi-php.c @@ -671,6 +671,7 @@ PHP_FUNCTION(xmlrpc_encode_request) if (Z_TYPE_PP(method) == IS_NULL) { XMLRPC_RequestSetRequestType(xRequest, xmlrpc_request_response); } else { + convert_to_string_ex(method); XMLRPC_RequestSetMethodName(xRequest, Z_STRVAL_PP(method)); XMLRPC_RequestSetRequestType(xRequest, xmlrpc_request_call); } @@ -740,7 +741,7 @@ zval* decode_request_worker (zval* xml_in, zval* encoding_in, zval* method_name_ if(XMLRPC_RequestGetRequestType(response) == xmlrpc_request_call) { if(method_name_out) { - convert_to_string(method_name_out); + zval_dtor(method_name_out); Z_TYPE_P(method_name_out) = IS_STRING; Z_STRVAL_P(method_name_out) = estrdup(XMLRPC_RequestGetMethodName(response)); Z_STRLEN_P(method_name_out) = strlen(Z_STRVAL_P(method_name_out)); -- cgit v1.2.1