com php-src: - Fixed memory leak when extending DOMXPath: ext/dom/xpath.c
| From: | Felipe Pena | Date: | Sat, 14 Jul 2012 16:13:31 +0000 |
| Subject: | com php-src: - Fixed memory leak when extending DOMXPath: ext/dom/xpath.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-69582@lists.php.net to get a copy of this message | ||
Commit: 864575251ac85176b763a56b35c2da298e0d0fa7
Author: Felipe Pena <felipensp@gmail.com> Sat, 14 Jul 2012 13:13:31 -0300
Parents: 02b8362ec231edb5be2a4ff633ad609c70713131
Branches: PHP-5.3 PHP-5.4 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=864575251ac85176b763a56b35c2da298e0d0fa7
Log:
- Fixed memory leak when extending DOMXPath
Changed paths:
M ext/dom/xpath.c
Diff:
diff --git a/ext/dom/xpath.c b/ext/dom/xpath.c
index de7b1fa..b5a31d7 100644
--- a/ext/dom/xpath.c
+++ b/ext/dom/xpath.c
@@ -321,6 +321,7 @@ int dom_xpath_document_read(dom_object *obj, zval **retval TSRMLS_DC)
xmlDoc *docp = NULL;
xmlXPathContextPtr ctx;
int ret;
+ zval *tmp;
ctx = (xmlXPathContextPtr) obj->ptr;
@@ -329,10 +330,15 @@ int dom_xpath_document_read(dom_object *obj, zval **retval TSRMLS_DC)
}
ALLOC_ZVAL(*retval);
+ tmp = *retval;
if (NULL == (*retval = php_dom_create_object((xmlNodePtr) docp, &ret, NULL, *retval, obj
TSRMLS_CC))) {
+ FREE_ZVAL(tmp);
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot create required DOM object");
return FAILURE;
}
+ if (tmp != *retval) {
+ FREE_ZVAL(tmp);
+ }
return SUCCESS;
}
/* }}} */