Make WordPress Core


Ignore:
Timestamp:
09/11/2015 01:25:21 AM (11 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.