Changeset 32318
- Timestamp:
- 04/27/2015 06:34:09 PM (9 years ago)
- Location:
- branches/3.7
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/3.7/package.json
r32286 r32318 1 1 { 2 2 "name": "WordPress", 3 "version": "3.7. 7",3 "version": "3.7.8", 4 4 "description": "WordPress is web software you can use to create a beautiful website or blog.", 5 5 "repository": { -
branches/3.7/src/readme.html
r32286 r32318 9 9 <h1 id="logo"> 10 10 <a href="http://wordpress.org/"><img alt="WordPress" src="wp-admin/images/wordpress-logo.png" /></a> 11 <br /> Version 3.7. 711 <br /> Version 3.7.8 12 12 </h1> 13 13 <p style="text-align: center">Semantic Personal Publishing Platform</p> -
branches/3.7/src/wp-admin/about.php
r32286 r32318 37 37 38 38 <div class="changelog point-releases"> 39 <h3><?php echo _n( 'Maintenance and Security Release', 'Maintenance and Security Releases', 7 ); ?></h3> 39 <h3><?php echo _n( 'Maintenance and Security Release', 'Maintenance and Security Releases', 8 ); ?></h3> 40 <p><?php printf( _n( '<strong>Version %1$s</strong> addressed a security issue.', 41 '<strong>Version %1$s</strong> addressed some security issues.', 1 ), '3.7.8' ); ?> 42 <?php printf( __( 'For more information, see <a href="%s">the release notes</a>.' ), 'http://codex.wordpress.org/Version_3.7.8' ); ?> 43 </p> 40 44 <p><?php printf( _n( '<strong>Version %1$s</strong> addressed %2$s bug.', 41 45 '<strong>Version %1$s</strong> addressed %2$s bugs.', 1 ), '3.7.7', number_format_i18n( 1 ) ); ?> -
branches/3.7/src/wp-admin/includes/upgrade.php
r28077 r32318 412 412 upgrade_373(); 413 413 414 if ( $wp_current_db_version < 26150 ) 415 upgrade_378(); 416 414 417 maybe_disable_link_manager(); 415 418 … … 1266 1269 $wpdb->update( $wpdb->posts, array( 'post_status' => 'draft' ), array( 'ID' => $post->ID ) ); 1267 1270 clean_post_cache( $post->ID ); 1271 } 1272 } 1273 } 1274 1275 /** 1276 * Execute changes made in WordPress 3.7.8. 1277 * 1278 * @since 3.7.8 1279 */ 1280 function upgrade_378() { 1281 global $wp_current_db_version, $wpdb; 1282 1283 if ( $wp_current_db_version < 26150 ) { 1284 $content_length = $wpdb->get_col_length( $wpdb->comments, 'comment_content' ); 1285 if ( ! $content_length ) { 1286 $content_length = 65535; 1287 } 1288 1289 $comments = $wpdb->get_results( 1290 "SELECT comment_ID FROM $wpdb->comments 1291 WHERE comment_date_gmt > '2015-04-26' 1292 AND CHAR_LENGTH( comment_content ) >= $content_length 1293 AND ( comment_content LIKE '%<%' OR comment_content LIKE '%>%' )" 1294 ); 1295 1296 foreach ( $comments as $comment ) { 1297 wp_delete_comment( $comment->comment_ID, true ); 1268 1298 } 1269 1299 } -
branches/3.7/src/wp-includes/version.php
r32305 r32318 12 12 * @global int $wp_db_version 13 13 */ 14 $wp_db_version = 261 49;14 $wp_db_version = 26150; 15 15 16 16 /** -
branches/3.7/src/wp-includes/wp-db.php
r32275 r32318 1514 1514 protected function process_fields( $table, $data, $format ) { 1515 1515 $data = $this->process_field_formats( $data, $format ); 1516 if ( false === $data ) { 1517 return false; 1518 } 1519 1516 1520 $data = $this->process_field_charsets( $data, $table ); 1521 if ( false === $data ) { 1522 return false; 1523 } 1524 1525 $data = $this->process_field_lengths( $data, $table ); 1517 1526 if ( false === $data ) { 1518 1527 return false; … … 1591 1600 // This isn't ASCII. Don't have strip_invalid_text() re-check. 1592 1601 $value['ascii'] = false; 1602 } 1603 1604 $data[ $field ] = $value; 1605 } 1606 1607 return $data; 1608 } 1609 1610 /** 1611 * For string fields, record the maximum string length that field can safely save. 1612 * 1613 * @since 4.2.1 1614 * @access protected 1615 * 1616 * @param array $data As it comes from the wpdb::process_field_charsets() method. 1617 * @param string $table Table name. 1618 * @return array|False The same array as $data with additional 'length' keys, or false if 1619 * any of the values were too long for their corresponding field. 1620 */ 1621 protected function process_field_lengths( $data, $table ) { 1622 foreach ( $data as $field => $value ) { 1623 if ( '%d' === $value['format'] || '%f' === $value['format'] ) { 1624 // We can skip this field if we know it isn't a string. 1625 // This checks %d/%f versus ! %s because it's sprintf() could take more. 1626 $value['length'] = false; 1627 } else { 1628 $value['length'] = $this->get_col_length( $table, $field ); 1629 if ( is_wp_error( $value['length'] ) ) { 1630 return false; 1631 } 1632 } 1633 1634 if ( false !== $value['length'] && strlen( $value['value'] ) > $value['length'] ) { 1635 return false; 1593 1636 } 1594 1637 … … 1915 1958 1916 1959 /** 1960 * Retrieve the maximum string length allowed in a given column. 1961 * 1962 * @since 4.2.1 1963 * @access public 1964 * 1965 * @param string $table Table name. 1966 * @param string $column Column name. 1967 * @return mixed Max column length as an int. False if the column has no 1968 * length. WP_Error object if there was an error. 1969 */ 1970 public function get_col_length( $table, $column ) { 1971 $tablekey = strtolower( $table ); 1972 $columnkey = strtolower( $column ); 1973 1974 // Skip this entirely if this isn't a MySQL database. 1975 if ( false === $this->is_mysql ) { 1976 return false; 1977 } 1978 1979 if ( empty( $this->col_meta[ $tablekey ] ) ) { 1980 // This primes column information for us. 1981 $table_charset = $this->get_table_charset( $table ); 1982 if ( is_wp_error( $table_charset ) ) { 1983 return $table_charset; 1984 } 1985 } 1986 1987 if ( empty( $this->col_meta[ $tablekey ][ $columnkey ] ) ) { 1988 return false; 1989 } 1990 1991 $typeinfo = explode( '(', $this->col_meta[ $tablekey ][ $columnkey ]->Type ); 1992 1993 $type = strtolower( $typeinfo[0] ); 1994 if ( ! empty( $typeinfo[1] ) ) { 1995 $length = trim( $typeinfo[1], ')' ); 1996 } else { 1997 $length = false; 1998 } 1999 2000 switch( $type ) { 2001 case 'binary': 2002 case 'char': 2003 case 'varbinary': 2004 case 'varchar': 2005 return $length; 2006 break; 2007 case 'tinyblob': 2008 case 'tinytext': 2009 return 255; // 2^8 - 1 2010 break; 2011 case 'blob': 2012 case 'text': 2013 return 65535; // 2^16 - 1 2014 break; 2015 case 'mediumblob': 2016 case 'mediumtext': 2017 return 16777215; // 2^24 - 1 2018 break; 2019 case 'longblob': 2020 case 'longtext': 2021 return 4294967295; // 2^32 - 1 2022 break; 2023 default: 2024 return false; 2025 } 2026 2027 return false; 2028 } 2029 2030 /** 1917 2031 * Check if a string is ASCII. 1918 2032 * -
branches/3.7/tests/phpunit/tests/comment.php
r25002 r32318 15 15 $this->assertEquals( 0, $result ); 16 16 } 17 18 public function test_comment_content_length() { 19 // `wp_new_comment()` checks REMOTE_ADDR, so we fake it to avoid PHP notices. 20 if ( isset( $_SERVER['REMOTE_ADDR'] ) ) { 21 $remote_addr = $_SERVER['REMOTE_ADDR']; 22 } else { 23 $_SERVER['REMOTE_ADDR'] = ''; 24 } 25 26 $post_id = $this->factory->post->create(); 27 28 $data = array( 29 'comment_post_ID' => $post_id, 30 'comment_author' => rand_str(), 31 'comment_author_url' => '', 32 'comment_author_email' => '', 33 'comment_type' => '', 34 'comment_content' => str_repeat( 'A', 65536 ), 35 'comment_date' => '2011-01-01 10:00:00', 36 'comment_date_gmt' => '2011-01-01 10:00:00', 37 ); 38 39 $id = wp_new_comment( $data ); 40 41 $this->assertFalse( $id ); 42 43 // Cleanup. 44 if ( isset( $remote_addr ) ) { 45 $_SERVER['REMOTE_ADDR'] = $remote_addr; 46 } else { 47 unset( $_SERVER['REMOTE_ADDR'] ); 48 } 49 } 17 50 } -
branches/3.7/tests/phpunit/tests/db.php
r32188 r32318 512 512 'charset' => $expected_charset, 513 513 'ascii' => false, 514 'length' => $wpdb->get_col_length( $wpdb->posts, 'post_content' ), 514 515 ) 515 516 );
Note: See TracChangeset
for help on using the changeset viewer.