Make WordPress Core

Ticket #40680: 40680.patch

File 40680.patch, 1.8 KB (added by ocean90, 9 years ago)
  • src/wp-includes/kses.php

     
    828828                $xhtml_slash = ' /';
    829829
    830830        // Are any attributes allowed at all for this element?
    831         if ( ! isset($allowed_html[strtolower($element)]) || count($allowed_html[strtolower($element)]) == 0 )
     831        if ( ! isset( $allowed_html[ strtolower( $element ) ] ) || true === $allowed_html[ strtolower( $element ) ] || count( $allowed_html[ strtolower( $element ) ] ) == 0 ) {
    832832                return "<$element$xhtml_slash>";
     833        }
    833834
    834835        // Split it
    835836        $attrarr = wp_kses_hair($attr, $allowed_protocols);
  • tests/phpunit/tests/kses.php

     
    678678
    679679                $this->assertEquals( $input, wp_kses( $input, $allowedposttags ) );
    680680        }
     681
     682        /**
     683         * @ticket 40680
     684         */
     685        function test_wp_kses_attr_no_attributes_allowed_with_empty_array() {
     686                $element = 'foo';
     687                $attribute = 'title="foo" class="bar"';
     688
     689                $this->assertEquals( "<{$element}>", wp_kses_attr( $element, $attribute, array( 'foo' => array() ), array() ) );
     690        }
     691
     692        /**
     693         * @ticket 40680
     694         */
     695        function test_wp_kses_attr_no_attributes_allowed_with_true() {
     696                $element = 'foo';
     697                $attribute = 'title="foo" class="bar"';
     698
     699                $this->assertEquals( "<{$element}>", wp_kses_attr( $element, $attribute, array( 'foo' => true ), array() ) );
     700        }
     701
     702        /**
     703         * @ticket 40680
     704         */
     705        function test_wp_kses_attr_single_attribute_is_allowed() {
     706                $element = 'foo';
     707                $attribute = 'title="foo" class="bar"';
     708
     709                $this->assertEquals( "<{$element} title=\"foo\">", wp_kses_attr( $element, $attribute, array( 'foo' => array( 'title' => true ) ), array() ) );
     710        }
    681711}