Diff for /embedaddon/php/ext/libxml/libxml.c between versions 1.1.1.2 and 1.1.1.3

version 1.1.1.2, 2012/05/29 12:34:40 version 1.1.1.3, 2013/07/22 01:31:52
Line 2 Line 2
    +----------------------------------------------------------------------+     +----------------------------------------------------------------------+
    | PHP Version 5                                                        |     | PHP Version 5                                                        |
    +----------------------------------------------------------------------+     +----------------------------------------------------------------------+
   | Copyright (c) 1997-2012 The PHP Group                                |   | Copyright (c) 1997-2013 The PHP Group                                |
    +----------------------------------------------------------------------+     +----------------------------------------------------------------------+
    | This source file is subject to version 3.01 of the PHP license,      |     | This source file is subject to version 3.01 of the PHP license,      |
    | that is bundled with this package in the file LICENSE, and is        |     | that is bundled with this package in the file LICENSE, and is        |
Line 270  static PHP_GINIT_FUNCTION(libxml) Line 270  static PHP_GINIT_FUNCTION(libxml)
         libxml_globals->error_buffer.c = NULL;          libxml_globals->error_buffer.c = NULL;
         libxml_globals->error_list = NULL;          libxml_globals->error_list = NULL;
         libxml_globals->entity_loader.fci.size = 0;          libxml_globals->entity_loader.fci.size = 0;
           libxml_globals->entity_loader_disabled = 0;
 }  }
   
 static void _php_libxml_destroy_fci(zend_fcall_info *fci)  static void _php_libxml_destroy_fci(zend_fcall_info *fci)
Line 369  static int php_libxml_streams_IO_close(void *context) Line 370  static int php_libxml_streams_IO_close(void *context)
 }  }
   
 static xmlParserInputBufferPtr  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)  php_libxml_input_buffer_create_filename(const char *URI, xmlCharEncoding enc)
 {  {
         xmlParserInputBufferPtr ret;          xmlParserInputBufferPtr ret;
         void *context = NULL;          void *context = NULL;
           TSRMLS_FETCH();
   
           if (LIBXML(entity_loader_disabled)) {
                   return NULL;
           }
   
         if (URI == NULL)          if (URI == NULL)
                 return(NULL);                  return(NULL);
   
Line 677  is_string: Line 677  is_string:
 static xmlParserInputPtr _php_libxml_pre_ext_ent_loader(const char *URL,  static xmlParserInputPtr _php_libxml_pre_ext_ent_loader(const char *URL,
                 const char *ID, xmlParserCtxtPtr context)                  const char *ID, xmlParserCtxtPtr context)
 {  {
           TSRMLS_FETCH();
   
         /* Check whether we're running in a PHP context, since the entity loader          /* Check whether we're running in a PHP context, since the entity loader
         * we've defined is an application level (true global) setting */         * we've defined is an application level (true global) setting.
        if (xmlGenericError == php_libxml_error_handler) {         * If we are, we also want to check whether we've finished activating
          * the modules (RINIT phase). Using our external entity loader during a
          * RINIT should not be problem per se (though during MINIT it is, because
          * we don't even have a resource list by then), but then whether one
          * extension would be using the custom external entity loader or not
          * could depend on extension loading order
          * (if _php_libxml_per_request_initialization */
         if (xmlGenericError == php_libxml_error_handler && PG(modules_activated)) {
                 return _php_libxml_external_entity_loader(URL, ID, context);                  return _php_libxml_external_entity_loader(URL, ID, context);
         } else {          } else {
                 return _php_libxml_default_entity_loader(URL, ID, context);                  return _php_libxml_default_entity_loader(URL, ID, context);
Line 851  static PHP_MSHUTDOWN_FUNCTION(libxml) Line 860  static PHP_MSHUTDOWN_FUNCTION(libxml)
 {  {
         if (!_php_libxml_per_request_initialization) {          if (!_php_libxml_per_request_initialization) {
                 xmlSetGenericErrorFunc(NULL, NULL);                  xmlSetGenericErrorFunc(NULL, NULL);
                 xmlSetStructuredErrorFunc(NULL, NULL);  
   
                 xmlParserInputBufferCreateFilenameDefault(NULL);                  xmlParserInputBufferCreateFilenameDefault(NULL);
                 xmlOutputBufferCreateFilenameDefault(NULL);                  xmlOutputBufferCreateFilenameDefault(NULL);
Line 867  static int php_libxml_post_deactivate() Line 875  static int php_libxml_post_deactivate()
         /* reset libxml generic error handling */          /* reset libxml generic error handling */
         if (_php_libxml_per_request_initialization) {          if (_php_libxml_per_request_initialization) {
                 xmlSetGenericErrorFunc(NULL, NULL);                  xmlSetGenericErrorFunc(NULL, NULL);
                 xmlSetStructuredErrorFunc(NULL, NULL);  
   
                 xmlParserInputBufferCreateFilenameDefault(NULL);                  xmlParserInputBufferCreateFilenameDefault(NULL);
                 xmlOutputBufferCreateFilenameDefault(NULL);                  xmlOutputBufferCreateFilenameDefault(NULL);
         }          }
           xmlSetStructuredErrorFunc(NULL, NULL);
   
         if (LIBXML(stream_context)) {          if (LIBXML(stream_context)) {
                zval_ptr_dtor(&LIBXML(stream_context));                /* the steam_context resource will be released by resource list destructor */
                 efree(LIBXML(stream_context));
                 LIBXML(stream_context) = NULL;                  LIBXML(stream_context) = NULL;
         }          }
         smart_str_free(&LIBXML(error_buffer));          smart_str_free(&LIBXML(error_buffer));
Line 908  static PHP_FUNCTION(libxml_set_streams_context) Line 917  static PHP_FUNCTION(libxml_set_streams_context)
 {  {
         zval *arg;          zval *arg;
   
        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &arg) == FAILURE) {        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &arg) == FAILURE) {
                 return;                  return;
         }          }
         if (LIBXML(stream_context)) {          if (LIBXML(stream_context)) {
Line 1043  static PHP_FUNCTION(libxml_clear_errors) Line 1052  static PHP_FUNCTION(libxml_clear_errors)
 }  }
 /* }}} */  /* }}} */
   
   PHP_LIBXML_API zend_bool php_libxml_disable_entity_loader(zend_bool disable TSRMLS_DC)
   {
           zend_bool old = LIBXML(entity_loader_disabled);
   
           LIBXML(entity_loader_disabled) = disable;
           return old;
   }
   
 /* {{{ proto bool libxml_disable_entity_loader([boolean disable])   /* {{{ proto bool libxml_disable_entity_loader([boolean disable]) 
    Disable/Enable ability to load external entities */     Disable/Enable ability to load external entities */
 static PHP_FUNCTION(libxml_disable_entity_loader)  static PHP_FUNCTION(libxml_disable_entity_loader)
 {  {
         zend_bool disable = 1;          zend_bool disable = 1;
         xmlParserInputBufferCreateFilenameFunc old;  
   
         if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|b", &disable) == FAILURE) {          if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|b", &disable) == FAILURE) {
                 return;                  return;
         }          }
   
        if (disable == 0) {        RETURN_BOOL(php_libxml_disable_entity_loader(disable TSRMLS_CC));
                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; 
 }  }
 /* }}} */  /* }}} */
   

Removed from v.1.1.1.2  
changed lines
  Added in v.1.1.1.3


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>