rrichards Tue Jun 23 10:50:09 2009 UTC
Modified files: (Branch: PHP_5_3)
/php-src/ext/libxml libxml.c
Log:
MFH: add libxml_disable_entity_loader function
http://cvs.php.net/viewvc.cgi/php-src/ext/libxml/libxml.c?r1=1.32.2.7.2.15.2.11&r2=1.32.2.7.2.15.2.12&diff_format=u
Index: php-src/ext/libxml/libxml.c
diff -u php-src/ext/libxml/libxml.c:1.32.2.7.2.15.2.11
php-src/ext/libxml/libxml.c:1.32.2.7.2.15.2.12
--- php-src/ext/libxml/libxml.c:1.32.2.7.2.15.2.11 Sat Mar 14 17:30:28 2009
+++ php-src/ext/libxml/libxml.c Tue Jun 23 10:50:09 2009
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: libxml.c,v 1.32.2.7.2.15.2.11 2009/03/14 17:30:28 rrichards Exp $ */
+/* $Id: libxml.c,v 1.32.2.7.2.15.2.12 2009/06/23 10:50:09 rrichards Exp $ */
#define IS_EXT_MODULE
@@ -68,6 +68,7 @@
static PHP_FUNCTION(libxml_get_last_error);
static PHP_FUNCTION(libxml_clear_errors);
static PHP_FUNCTION(libxml_get_errors);
+static PHP_FUNCTION(libxml_disable_entity_loader);
static zend_class_entry *libxmlerror_class_entry;
@@ -104,6 +105,10 @@
ZEND_BEGIN_ARG_INFO(arginfo_libxml_clear_errors, 0)
ZEND_END_ARG_INFO()
+ZEND_BEGIN_ARG_INFO(arginfo_libxml_disable_entity_loader, 0)
+ ZEND_ARG_INFO(0, disable)
+ZEND_END_ARG_INFO()
+
/* }}} */
/* {{{ extension definition structures */
@@ -113,6 +118,7 @@
PHP_FE(libxml_get_last_error, arginfo_libxml_get_last_error)
PHP_FE(libxml_clear_errors, arginfo_libxml_clear_errors)
PHP_FE(libxml_get_errors, arginfo_libxml_get_errors)
+ PHP_FE(libxml_disable_entity_loader,
arginfo_libxml_disable_entity_loader)
{NULL, NULL, NULL}
};
@@ -344,6 +350,12 @@
}
static xmlParserInputBufferPtr
+php_libxml_input_buffer_noload(const char *URI, xmlCharEncoding enc)
+{
+ return NULL;
+}
+
+static xmlParserInputBufferPtr
php_libxml_input_buffer_create_filename(const char *URI, xmlCharEncoding enc)
{
xmlParserInputBufferPtr ret;
@@ -820,6 +832,31 @@
}
/* }}} */
+/* {{{ proto bool libxml_disable_entity_loader([boolean disable])
+ Disable/Enable ability to load external entities */
+static PHP_FUNCTION(libxml_disable_entity_loader)
+{
+ zend_bool disable = 1;
+ xmlParserInputBufferCreateFilenameFunc old;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|b", &disable) ==
FAILURE) {
+ return;
+ }
+
+ if (disable == 0) {
+ old =
xmlParserInputBufferCreateFilenameDefault(php_libxml_input_buffer_create_filename);
+ } else {
+ old =
xmlParserInputBufferCreateFilenameDefault(php_libxml_input_buffer_noload);
+ }
+
+ if (old == php_libxml_input_buffer_noload) {
+ RETURN_TRUE;
+ }
+
+ RETURN_FALSE;
+}
+/* }}} */
+
/* {{{ Common functions shared by extensions */
int php_libxml_xmlCheckUTF8(const unsigned char *s)
{
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php