Gina Peter Banyard
fd2d869642
Clean-up some more headers ( #14416 )
...
Remove unused headers (such as php_ini.h for extensions that don't define INI settings)
Use more specific headers when possible
2024-06-08 17:15:36 +01:00
Niels Dossche
dfde0d4cef
Handle dumping node to file
2024-05-11 18:09:39 +02:00
Niels Dossche
0c490ade0d
Handle dumping document to file
2024-05-11 18:09:39 +02:00
Niels Dossche
44485892df
Factor out all common code for XML serialization and merge common paths
2024-05-11 18:09:39 +02:00
Niels Dossche
8637a3f5b0
Fix getDocNamespaces() not working when only having xmlns attributes without an internal declaration in the document
2024-05-05 10:14:40 +02:00
Niels Dossche
4bd63568fb
Fix argument type of simplexml_import_dom ( #13170 )
...
It needs to be "object".
This is because first- and third-party extension can register custom
node types using `php_libxml_register_export`. So we don't know upfront
what types can be expected.
This also changes the error to a TypeError everywhere.
2024-01-18 20:28:01 +01:00
David CARLIER
9726721560
general signatures discrepencies fixes ( #13122 )
2024-01-10 22:19:23 +00:00
Niels Dossche
61b7370b6d
Merge branch 'PHP-8.3'
...
* PHP-8.3:
Fix GH-12929: SimpleXMLElement with stream_wrapper_register can segfault
Fix getting the address of an uninitialized property of a SimpleXMLElement resulting in a crash
Fix GH-12962: Double free of init_file in phpdbg_prompt.c
2023-12-17 11:52:48 +01:00
Niels Dossche
f75931ad9e
Fix GH-12929: SimpleXMLElement with stream_wrapper_register can segfault
...
Move SimpleXML invalidation code after node checks
This is safe, i.e. the tree hasn't been modified yet, because either we
didn't call a libxml modification function yet, or xmlNewChild is called
with a NULL pointer, which makes it bail out and return NULL.
Closes GH-12947.
2023-12-17 11:51:42 +01:00
Niels Dossche
4fc336c784
Merge branch 'PHP-8.2' into PHP-8.3
...
* PHP-8.2:
Fix getting the address of an uninitialized property of a SimpleXMLElement resulting in a crash
Fix GH-12962: Double free of init_file in phpdbg_prompt.c
2023-12-17 11:50:42 +01:00
Niels Dossche
abf4c116b1
Fix getting the address of an uninitialized property of a SimpleXMLElement resulting in a crash
...
Closes GH-12945.
2023-12-17 11:47:11 +01:00
Niels Dossche
ec2ef6465d
Merge branch 'PHP-8.2' into PHP-8.3
...
* PHP-8.2:
Apply SimpleXML iterator fixes only on master
2023-09-30 17:55:34 +02:00
Niels Dossche
77f44b2281
Merge branch 'PHP-8.1' into PHP-8.2
...
* PHP-8.1:
Apply SimpleXML iterator fixes only on master
2023-09-30 17:53:57 +02:00
Niels Dossche
b842ea4fa8
Apply SimpleXML iterator fixes only on master
...
Many methods in SimpleXML reset the iterator when called. This has the
consequence that mixing these operations with loops can cause infinite
loops, or the loss of iteration data.
Some people may however rely on the resetting behaviour. To prevent
unintended breaks in stable branches, let's only apply the fix to master.
This reverts GH-12193, GH-12229, GG-12247 for stable branches while
keeping them on master, adding a note in UPGRADING as well.
2023-09-30 17:48:05 +02:00
Niels Dossche
2e8cdd8eec
Merge branch 'PHP-8.3'
...
* PHP-8.3:
Fix GH-12167 and GH-12169: Unable to get comment or processing instruction contents in SimpleXML
2023-09-25 19:50:58 +02:00
Niels Dossche
190a535325
Merge branch 'PHP-8.2' into PHP-8.3
...
* PHP-8.2:
Fix GH-12167 and GH-12169: Unable to get comment or processing instruction contents in SimpleXML
2023-09-25 19:49:36 +02:00
Niels Dossche
9c37a02c54
Merge branch 'PHP-8.1' into PHP-8.2
...
* PHP-8.1:
Fix GH-12167 and GH-12169: Unable to get comment or processing instruction contents in SimpleXML
2023-09-25 19:48:49 +02:00
Niels Dossche
82a84d0b7b
Fix GH-12167 and GH-12169: Unable to get comment or processing instruction contents in SimpleXML
...
Closes GH-12289.
2023-09-25 19:47:09 +02:00
Niels Dossche
aab6bbc6f5
Merge branch 'PHP-8.3'
...
* PHP-8.3:
Fix GH-12215: Module entry being overwritten causes type errors in ext/dom (<= PHP 8.3)
Fix bug #55098 : SimpleXML iteration produces infinite loop
2023-09-20 21:02:36 +02:00
Niels Dossche
b08802d160
Merge branch 'PHP-8.2' into PHP-8.3
...
* PHP-8.2:
Fix GH-12215: Module entry being overwritten causes type errors in ext/dom (<= PHP 8.3)
Fix bug #55098 : SimpleXML iteration produces infinite loop
2023-09-20 20:59:22 +02:00
Niels Dossche
84fae4a160
Merge branch 'PHP-8.1' into PHP-8.2
...
* PHP-8.1:
Fix GH-12215: Module entry being overwritten causes type errors in ext/dom (<= PHP 8.3)
Fix bug #55098 : SimpleXML iteration produces infinite loop
2023-09-20 20:58:08 +02:00
Niels Dossche
1a4e401bf0
Fix bug #55098 : SimpleXML iteration produces infinite loop
...
Closes GH-12247.
2023-09-20 20:54:53 +02:00
Niels Dossche
7f0705b1fa
Merge branch 'PHP-8.3'
...
* PHP-8.3:
Fix GH-12208: SimpleXML infinite loop when a cast is used inside a foreach
2023-09-17 16:35:39 +02:00
Niels Dossche
673babed24
Merge branch 'PHP-8.2' into PHP-8.3
...
* PHP-8.2:
Fix GH-12208: SimpleXML infinite loop when a cast is used inside a foreach
2023-09-17 16:35:11 +02:00
Niels Dossche
f4f34b6e5a
Merge branch 'PHP-8.1' into PHP-8.2
...
* PHP-8.1:
Fix GH-12208: SimpleXML infinite loop when a cast is used inside a foreach
2023-09-17 16:34:38 +02:00
Niels Dossche
486276f0f9
Fix GH-12208: SimpleXML infinite loop when a cast is used inside a foreach
...
Closes GH-12229.
2023-09-17 16:33:32 +02:00
Niels Dossche
8f9626c0f7
Simplify php_sxe_count_elements_helper() by using non-destructive iterator reset
2023-09-17 16:21:54 +02:00
Niels Dossche
550ec29821
Use php_sxe_reset_iterator_no_clear_iter_data() to avoid having to store and restore iterator data
...
This makes the code less error-prone, and also makes it simpler.
2023-09-17 16:21:54 +02:00
Niels Dossche
695ec3c97e
Remove unnecessary _IS_BOOL case ( #12230 )
...
This can never be executed because booleans are handled in a special
case at the top of sxe_object_cast_ex().
2023-09-17 16:19:22 +02:00
Niels Dossche
fad0e4f4e7
Merge branch 'PHP-8.3'
...
* PHP-8.3:
Fix GH-12223: Entity reference produces infinite loop in var_dump/print_r
Fix GH-12192: SimpleXML infinite loop when getName() is called within foreach
Fix GH-12186: segfault copying/cloning a finalized HashContext
2023-09-16 21:28:59 +02:00
Niels Dossche
4bb27e2d9b
Merge branch 'PHP-8.2' into PHP-8.3
...
* PHP-8.2:
Fix GH-12223: Entity reference produces infinite loop in var_dump/print_r
Fix GH-12192: SimpleXML infinite loop when getName() is called within foreach
Fix GH-12186: segfault copying/cloning a finalized HashContext
2023-09-16 21:28:24 +02:00
Niels Dossche
5df473d2c7
Merge branch 'PHP-8.1' into PHP-8.2
...
* PHP-8.1:
Fix GH-12223: Entity reference produces infinite loop in var_dump/print_r
Fix GH-12192: SimpleXML infinite loop when getName() is called within foreach
Fix GH-12186: segfault copying/cloning a finalized HashContext
2023-09-16 21:24:20 +02:00
Niels Dossche
39a9e561f9
Fix GH-12223: Entity reference produces infinite loop in var_dump/print_r
...
Closes GH-12223.
2023-09-16 21:19:58 +02:00
Niels Dossche
4d888cf53f
Fix GH-12192: SimpleXML infinite loop when getName() is called within foreach
...
This happens because getName() resets the iterator to the start because
it overwrites the iterator data.
We add a version of get_first_node that does not overwrite the iterator
data.
Closes GH-12193.
2023-09-16 21:19:28 +02:00
Niels Dossche
0fee720173
Simplify node check in simplexml
2023-09-16 14:02:48 +02:00
Niels Dossche
e5252a3f4d
Merge branch 'PHP-8.3'
...
* PHP-8.3:
Fix GH-12170: Can't use xpath with comments in SimpleXML
2023-09-14 18:45:01 +02:00
Niels Dossche
60b1673b20
Merge branch 'PHP-8.2' into PHP-8.3
...
* PHP-8.2:
Fix GH-12170: Can't use xpath with comments in SimpleXML
2023-09-14 18:44:39 +02:00
Niels Dossche
b3bce2328f
Merge branch 'PHP-8.1' into PHP-8.2
...
* PHP-8.1:
Fix GH-12170: Can't use xpath with comments in SimpleXML
2023-09-14 18:42:47 +02:00
Niels Dossche
747335f100
Fix GH-12170: Can't use xpath with comments in SimpleXML
...
Closes GH-12177.
2023-09-14 18:42:16 +02:00
Niels Dossche
05c46b71d4
Small optimization in php_sxe_get_first_node() by avoiding unwrapping iterator data ( #12194 )
2023-09-13 22:47:09 +02:00
Niels Dossche
6b54811547
Merge branch 'PHP-8.3'
...
* PHP-8.3:
Fix #52751 : XPath processing-instruction() function is not supported.
2023-09-11 00:15:32 +02:00
Niels Dossche
2440af0f97
Merge branch 'PHP-8.2' into PHP-8.3
...
* PHP-8.2:
Fix #52751 : XPath processing-instruction() function is not supported.
2023-09-11 00:13:25 +02:00
Niels Dossche
d1ef22585f
Merge branch 'PHP-8.1' into PHP-8.2
...
* PHP-8.1:
Fix #52751 : XPath processing-instruction() function is not supported.
2023-09-11 00:12:16 +02:00
Niels Dossche
107443b311
Fix #52751 : XPath processing-instruction() function is not supported.
...
Closes GH-12165.
2023-09-11 00:08:29 +02:00
Niels Dossche
bec1552a06
Remove useless SKIP_TEXT() invokes ( #12164 )
...
In the places I removed them, they were useless because there is already
a type check for a single node type, so I found it confusing having them
there.
2023-09-10 00:02:17 +02:00
Niels Dossche
d18bab5562
Preallocate result array size in simplexml xpath
...
This is the simplexml version of 4dea42a .
2023-09-09 22:59:24 +02:00
Niels Dossche
0ea268b51a
Remove obsolete libxml2 code
...
LIBXML2_NEW_BUFFER is always defined since libxml2 2.9.0.
That's the minimum version PHP requires, so it will always be defined.
2023-09-09 21:58:13 +02:00
Ilija Tovilo
efc73f24c3
Revert "Call cast_object handler from get_properties_for"
...
This reverts commit 4182813ebf .
2023-08-07 12:58:12 +02:00
Derick Rethans
86afbe10e2
Merge branch 'PHP-8.2'
2023-07-31 19:57:02 +01:00
Derick Rethans
deddf4692a
Merge branch 'PHP-8.1' into PHP-8.2
2023-07-31 19:54:44 +01:00