From: Dmitry Stogov Date: Thu, 15 May 2014 12:18:19 +0000 (+0400) Subject: Fixed memory leaks X-Git-Tag: POST_PHPNG_MERGE~357^2^2~3 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3e131b41b2fc3a19e30c66415316d9035bd79b8d;p=php Fixed memory leaks --- diff --git a/Zend/zend_API.c b/Zend/zend_API.c index d4df4d3729..22ba10b029 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -1765,7 +1765,7 @@ ZEND_API int add_property_str_ex(zval *arg, const char *key, uint key_len, zend_ ZVAL_STR(&tmp, str); ZVAL_STRINGL(&z_key, key, key_len); Z_OBJ_HANDLER_P(arg, write_property)(arg, &z_key, &tmp, -1 TSRMLS_CC); -//??? zval_ptr_dtor(&tmp); /* write_property will add 1 to refcount */ + zval_ptr_dtor(&tmp); /* write_property will add 1 to refcount */ zval_ptr_dtor(&z_key); return SUCCESS; } diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c index 9afaa51b9c..5b4ed232d1 100644 --- a/ext/soap/php_encoding.c +++ b/ext/soap/php_encoding.c @@ -3063,9 +3063,9 @@ static xmlNodePtr to_xml_list(encodeTypePtr enc, zval *data, int style, xmlNodeP *next = '\0'; next++; } -//??? ZVAL_STRING(&dummy_zval, start, 0); ZVAL_STRING(&dummy_zval, start); dummy = master_to_xml(list_enc, &dummy_zval, SOAP_LITERAL, ret TSRMLS_CC); + zval_ptr_dtor(&dummy_zval); if (dummy && dummy->children && dummy->children->content) { if (list.s && list.s->len != 0) { smart_str_appendc(&list, ' '); diff --git a/ext/soap/soap.c b/ext/soap/soap.c index 937d50b15d..861a2787b6 100644 --- a/ext/soap/soap.c +++ b/ext/soap/soap.c @@ -4382,16 +4382,15 @@ static xmlNodePtr serialize_zval(zval *val, sdlParamPtr param, char *paramName, encodePtr enc; zval defval; + ZVAL_UNDEF(&defval); if (param != NULL) { enc = param->encode; if (val == NULL) { if (param->element) { if (param->element->fixed) { - //??? val has to be freed ZVAL_STRING(&defval, param->element->fixed); val = &defval; } else if (param->element->def && !param->element->nillable) { - //??? val has to be freed ZVAL_STRING(&defval, param->element->def); val = &defval; } @@ -4401,6 +4400,7 @@ static xmlNodePtr serialize_zval(zval *val, sdlParamPtr param, char *paramName, enc = NULL; } xmlParam = master_to_xml(enc, val, style, parent TSRMLS_CC); + zval_ptr_dtor(&defval); if (!strcmp((char*)xmlParam->name, "BOGUS")) { xmlNodeSetName(xmlParam, BAD_CAST(paramName)); }