XML-RPC: Add a filter, `xmlrpc_memory_limit`, to allow the value of `$xmlrpc_memory_limit` to be increased.

Props ankit.gade.
Fixes #29957.


git-svn-id: https://develop.svn.wordpress.org/trunk@35095 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Scott Taylor 2015-10-13 01:00:04 +00:00
parent 44a4978535
commit 380d27331e
1 changed files with 12 additions and 1 deletions

View File

@ -268,7 +268,18 @@ class IXR_Message
xml_set_object($this->_parser, $this); xml_set_object($this->_parser, $this);
xml_set_element_handler($this->_parser, 'tag_open', 'tag_close'); xml_set_element_handler($this->_parser, 'tag_open', 'tag_close');
xml_set_character_data_handler($this->_parser, 'cdata'); xml_set_character_data_handler($this->_parser, 'cdata');
$chunk_size = 262144; // 256Kb, parse in chunks to avoid the RAM usage on very large messages
// 256Kb, parse in chunks to avoid the RAM usage on very large messages
$xmlrpc_memory_limit = 262144;
/**
* Filter the maximum memory that can be used to parse an XML-RPC reponse message.
*
* @since 4.4.0
*
* @param int $xmlrpc_memory_limit Default value of memory allotted.
*/
$chunk_size = apply_filters( 'xmlrpc_memory_limit', $xmlrpc_memory_limit );
$final = false; $final = false;
do { do {
if (strlen($this->message) <= $chunk_size) { if (strlen($this->message) <= $chunk_size) {