Make WordPress Core

Ticket #28162: 28162.6.patch

File 28162.6.patch, 3.8 KB (added by SergeyBiryukov, 10 years ago)

Refreshed

  • src/wp-admin/includes/image.php

     
    290290                                $caption = trim( $iptc['2#120'][0] );
    291291                                if ( empty( $meta['title'] ) ) {
    292292                                        // Assume the title is stored in 2:120 if it's short.
    293                                         if ( strlen( $caption ) < 80 )
     293                                        if ( mbstring_binary_safe_strlen( $caption ) < 80 )
    294294                                                $meta['title'] = $caption;
    295295                                        else
    296296                                                $meta['caption'] = $caption;
     
    327327                }
    328328
    329329                if ( ! empty( $exif['ImageDescription'] ) ) {
    330                         if ( empty( $meta['title'] ) && strlen( $exif['ImageDescription'] ) < 80 ) {
     330                        if ( empty( $meta['title'] ) && mbstring_binary_safe_strlen( $exif['ImageDescription'] ) < 80 ) {
    331331                                // Assume the title is stored in ImageDescription
    332332                                $meta['title'] = trim( $exif['ImageDescription'] );
    333333                                if ( empty( $meta['caption'] ) && ! empty( $exif['COMPUTED']['UserComment'] ) && trim( $exif['COMPUTED']['UserComment'] ) != $meta['title'] ) {
  • src/wp-includes/formatting.php

     
    481481 * @return bool True if $str fits a UTF-8 model, false otherwise.
    482482 */
    483483function seems_utf8($str) {
    484         $length = strlen($str);
     484        $length = mbstring_binary_safe_strlen($str);
    485485        for ($i=0; $i < $length; $i++) {
    486486                $c = ord($str[$i]);
    487487                if ($c < 0x80) $n = 0; # 0bbbbbbb
     
    705705        $num_octets = 1;
    706706        $unicode_length = 0;
    707707
    708         $string_length = strlen( $utf8_string );
     708        $string_length = mbstring_binary_safe_strlen( $utf8_string );
    709709        for ($i = 0; $i < $string_length; $i++ ) {
    710710
    711711                $value = ord( $utf8_string[ $i ] );
  • src/wp-includes/functions.php

     
    44054405}
    44064406
    44074407/**
     4408 * Uses a binary-safe encoding to get the length of a string in bytes if func_overload is enabled.
     4409 *
     4410 * @see mbstring_binary_safe_encoding()
     4411 *
     4412 * @since 4.0.0
     4413 *
     4414 * @param string $string The string to get the length of.
     4415 * @return int The length of the string in bytes.
     4416 */
     4417function mbstring_binary_safe_strlen( $string ) {
     4418        mbstring_binary_safe_encoding();
     4419        $length = strlen( $string );
     4420        reset_mbstring_encoding();
     4421
     4422        return $length;
     4423}
     4424
     4425/**
    44084426 * Alternative to filter_var( $var, FILTER_VALIDATE_BOOLEAN )
    44094427 *
    44104428 * @since 4.0.0
  • src/wp-includes/pomo/mo.php

     
    7575                $current_addr++;
    7676                $originals_table = chr(0);
    7777
     78                $reader = new POMO_Reader();
     79
    7880                foreach($entries as $entry) {
    7981                        $originals_table .= $this->export_original($entry) . chr(0);
    80                         $length = strlen($this->export_original($entry));
     82                        $length = $reader->strlen($this->export_original($entry));
    8183                        fwrite($fh, pack('VV', $length, $current_addr));
    8284                        $current_addr += $length + 1; // account for the NULL byte after
    8385                }
    8486
    8587                $exported_headers = $this->export_headers();
    86                 fwrite($fh, pack('VV', strlen($exported_headers), $current_addr));
     88                fwrite($fh, pack('VV', $reader->strlen($exported_headers), $current_addr));
    8789                $current_addr += strlen($exported_headers) + 1;
    8890                $translations_table = $exported_headers . chr(0);
    8991
    9092                foreach($entries as $entry) {
    9193                        $translations_table .= $this->export_translations($entry) . chr(0);
    92                         $length = strlen($this->export_translations($entry));
     94                        $length = $reader->strlen($this->export_translations($entry));
    9395                        fwrite($fh, pack('VV', $length, $current_addr));
    9496                        $current_addr += $length + 1;
    9597                }