summaryrefslogtreecommitdiff
path: root/ext/libxml/php_libxml.h
diff options
context:
space:
mode:
authorRob Richards <rrichards@php.net>2004-03-01 12:09:24 +0000
committerRob Richards <rrichards@php.net>2004-03-01 12:09:24 +0000
commit76ee5707f76aeaefbe128b1cd0ea1d5521c860c7 (patch)
tree1506c10ed79407170b7b6ac039162dc65dc5a2bd /ext/libxml/php_libxml.h
parent9f9151473c5a14c45faf4e2f804097ec83c9b00d (diff)
downloadphp-git-76ee5707f76aeaefbe128b1cd0ea1d5521c860c7.tar.gz
Fix bug #27436 dom_import_simplexml innaccurate
extensions register callbacks to export nodes prevents segfault passing invalid objects to import functions
Diffstat (limited to 'ext/libxml/php_libxml.h')
-rw-r--r--ext/libxml/php_libxml.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/ext/libxml/php_libxml.h b/ext/libxml/php_libxml.h
index d1c6b86903..ab47e202fb 100644
--- a/ext/libxml/php_libxml.h
+++ b/ext/libxml/php_libxml.h
@@ -64,11 +64,15 @@ typedef struct _php_libxml_node_object {
HashTable *properties;
} php_libxml_node_object;
+typedef void * (*php_libxml_export_node) (zval *object TSRMLS_DC);
+
PHP_FUNCTION(libxml_set_streams_context);
int php_libxml_increment_node_ptr(php_libxml_node_object *object, xmlNodePtr node, void *private_data TSRMLS_DC);
int php_libxml_decrement_node_ptr(php_libxml_node_object *object TSRMLS_DC);
int php_libxml_increment_doc_ref(php_libxml_node_object *object, xmlDocPtr docp TSRMLS_DC);
int php_libxml_decrement_doc_ref(php_libxml_node_object *object TSRMLS_DC);
+PHP_LIBXML_API xmlNodePtr php_libxml_import_node(zval *object TSRMLS_DC);
+PHP_LIBXML_API int php_libxml_register_export(zend_class_entry *ce, php_libxml_export_node export_function);
/* When an explicit freeing of node and children is required */
void php_libxml_node_free_resource(xmlNodePtr node TSRMLS_DC);
/* When object dtor is called as node may still be referenced */