WordPress.org

Make WordPress Core

Ticket #22936: 22936.1.diff

File 22936.1.diff, 1.3 KB (added by danielbachhuber, 7 years ago)

stripslashes() on option value before updating

  • src/wp-includes/class-wp-xmlrpc-server.php

     
    32433243                        if ( $this->blog_options[$o_name]['readonly'] == true )
    32443244                                continue;
    32453245
    3246                         update_option( $this->blog_options[$o_name]['option'], $o_value );
     3246                        update_option( $this->blog_options[$o_name]['option'], stripslashes( $o_value ) );
    32473247                }
    32483248
    32493249                //Now return the updated values
  • tests/phpunit/tests/xmlrpc/wp/setOptions.php

     
     1<?php
     2
     3/**
     4 * @group xmlrpc
     5 */
     6class Tests_XMLRPC_wp_setOptions extends WP_XMLRPC_UnitTestCase {
     7
     8        /**
     9         * @ticket 22936
     10         */
     11        function test_set_option_no_escape_strings() {
     12
     13                $this->make_user_by_role( 'administrator' );
     14                $string_with_quote = "Mary's Lamb Shop";
     15
     16                $result = $this->myxmlrpcserver->wp_setOptions( array( 1, 'administrator', 'administrator', array( "blog_title" => $string_with_quote ) ) );
     17
     18                $this->assertInternalType( 'array', $result );
     19                $this->assertEquals( $string_with_quote, $result['blog_title']['value'] );
     20
     21        }
     22
     23}