[prev in list] [next in list] [prev in thread] [next in thread]
List: php-cvs
Subject: [PHP-CVS] [php-src] master: Merge branch 'PHP-8.2'
From: Bob Weinand <noreply () php ! net>
Date: 2023-06-30 13:34:19
Message-ID: c7mt7dPIr5HumGs1511Ouyzf9VOxesx9DBrYu7UGGg () main ! php ! net
[Download RAW message or body]
Author: Bob Weinand (bwoebi)
Date: 2023-06-30T15:20:55+02:00
Commit: https://github.com/php/php-src/commit/9fe33c845841c8faccfe04619d41bd748c1fbc40
Raw diff: https://github.com/php/php-src/commit/9fe33c845841c8faccfe04619d41bd748c1fbc40.diff
Merge branch 'PHP-8.2'
Changed paths:
M NEWS
M ext/xmlreader/php_xmlreader.c
Diff:
diff --git a/NEWS b/NEWS
index 800f9796ae58..683b0dcec6f0 100644
--- a/NEWS
+++ b/NEWS
@@ -32,6 +32,10 @@ PHP \
NEWS
- Standard:
. Fix serialization of RC1 objects appearing in object graph twice. (ilutov)
+- XMLReader:
+ . Fix GH-11548 (Argument corruption when calling XMLReader::open or
+ XMLReader::XML non-statically with observer active). (Bob)
+
- zip:
. zip extension version 1.22.0 for libzip 1.10.0. (Remi)
. add new error macros (ER_DATA_LENGTH and ER_NOT_ALLOWED). (Remi)
diff --git a/ext/xmlreader/php_xmlreader.c b/ext/xmlreader/php_xmlreader.c
index 8aeff33e4cea..b10a849e59ae 100644
--- a/ext/xmlreader/php_xmlreader.c
+++ b/ext/xmlreader/php_xmlreader.c
@@ -22,6 +22,7 @@
#include "php.h"
#include "php_ini.h"
#include "ext/standard/info.h"
+#include "zend_observer.h"
#include "php_xmlreader.h"
#ifdef HAVE_DOM
#include "ext/dom/xml_common.h"
@@ -1147,6 +1148,18 @@ PHP_METHOD(XMLReader, expand)
}
/* }}} */
+static zend_result (*prev_zend_post_startup_cb)(void);
+static zend_result xmlreader_fixup_temporaries(void) {
+ if (ZEND_OBSERVER_ENABLED) {
+ ++xmlreader_open_fn.T;
+ ++xmlreader_xml_fn.T;
+ }
+ if (prev_zend_post_startup_cb) {
+ return prev_zend_post_startup_cb();
+ }
+ return SUCCESS;
+}
+
/* {{{ PHP_MINIT_FUNCTION */
PHP_MINIT_FUNCTION(xmlreader)
{
@@ -1169,6 +1182,9 @@ PHP_MINIT_FUNCTION(xmlreader)
memcpy(&xmlreader_xml_fn, \
zend_hash_str_find_ptr(&xmlreader_class_entry->function_table, "xml", \
sizeof("xml")-1), sizeof(zend_internal_function)); xmlreader_xml_fn.fn_flags &= \
~ZEND_ACC_STATIC;
+ prev_zend_post_startup_cb = zend_post_startup_cb;
+ zend_post_startup_cb = xmlreader_fixup_temporaries;
+
zend_hash_init(&xmlreader_prop_handlers, 0, NULL, php_xmlreader_free_prop_handler, \
1); xmlreader_register_prop_handler(&xmlreader_prop_handlers, "attributeCount", \
xmlTextReaderAttributeCount, NULL, IS_LONG); \
xmlreader_register_prop_handler(&xmlreader_prop_handlers, "baseURI", NULL, \
xmlTextReaderConstBaseUri, IS_STRING);
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic