Make WordPress Core


Ignore:
Timestamp:
09/11/2015 01:25:21 AM (9 years ago)
Author:
pento
Message:

Schema: Increase the length of wp_options.option_name.

It's pretty easy to run over the option_name length, which causes undefined behaviour when inserting and retrieving options. Increasing the length from VARCHAR(64) to VARCHAR(191) significantly reduces the risk of this occurring.

Because option_name has a UNIQUE index, we can only increase it to 191 characters, rather than 255. The index can only use a prefix of 191 characters, so will incorrectly restrict long different strings that have the same prefix, if we make the column longer.

Props scribu, OriginalEXE, khromov, MikeHansenMe, netweb, pento.

Fixes #13310.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/includes/upgrade.php

    r33734 r34030  
    538538    if ( $wp_current_db_version < 33056 )
    539539        upgrade_431();
     540
     541    if ( $wp_current_db_version < 34030 )
     542        upgrade_440();
    540543
    541544    maybe_disable_link_manager();
     
    15971600
    15981601/**
     1602 * Executes changes made in WordPress 4.4.0.
     1603 *
     1604 * @since 4.4.0
     1605 *
     1606 * @global int  $wp_current_db_version Current version.
     1607 * @global wpdb $wpdb                  WordPress database abstraction object.
     1608 */
     1609function upgrade_440() {
     1610    global $wp_current_db_version, $wpdb;
     1611
     1612    if ( $wp_current_db_version < 34030 ) {
     1613        $wpdb->query( "ALTER TABLE {$wpdb->options} MODIFY option_name VARCHAR(191)" );
     1614    }
     1615}
     1616
     1617/**
    15991618 * Executes network-level upgrade routines.
    16001619 *
Note: See TracChangeset for help on using the changeset viewer.