Commit:    864575251ac85176b763a56b35c2da298e0d0fa7
Author:    Felipe Pena <felipe...@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;
 }
 /* }}} */


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to