Skip to content

Commit c481a21

Browse files
committed
Merge branch 'PHP-5.4'
* PHP-5.4: - Fixed memory leak when extending DOMXPath - BFN
2 parents f94051e + d640e44 commit c481a21

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

ext/dom/xpath.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,7 @@ int dom_xpath_document_read(dom_object *obj, zval **retval TSRMLS_DC)
321321
xmlDoc *docp = NULL;
322322
xmlXPathContextPtr ctx;
323323
int ret;
324+
zval *tmp;
324325

325326
ctx = (xmlXPathContextPtr) obj->ptr;
326327

@@ -329,10 +330,16 @@ int dom_xpath_document_read(dom_object *obj, zval **retval TSRMLS_DC)
329330
}
330331

331332
ALLOC_ZVAL(*retval);
333+
tmp = *retval;
334+
332335
if (NULL == (*retval = php_dom_create_object((xmlNodePtr) docp, &ret, *retval, obj TSRMLS_CC))) {
336+
FREE_ZVAL(tmp);
333337
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot create required DOM object");
334338
return FAILURE;
335339
}
340+
if (tmp != *retval) {
341+
FREE_ZVAL(tmp);
342+
}
336343
return SUCCESS;
337344
}
338345
/* }}} */

0 commit comments

Comments
 (0)