Make WordPress Core

Ticket #15058: 15058.3.diff

File 15058.3.diff, 1.7 KB (added by MikeHansenMe, 6 years ago)

trigger _doing_it_wrong to options and transients with long names

  • src/wp-includes/option.php

     
    250250function update_option( $option, $value, $autoload = null ) {
    251251        global $wpdb;
    252252
    253         $option = trim($option);
    254         if ( empty($option) )
     253        $option = trim( $option );
     254
     255        if ( empty( $option ) ) {
    255256                return false;
     257        }
    256258
     259        if ( 191 < strlen( $option ) ) {
     260                _doing_it_wrong( __FUNCTION__, __( 'The option name is longer than what can be stored in the options table.' ), '4.5' );
     261        }
     262
    257263        wp_protect_special_option( $option );
    258264
    259265        if ( is_object( $value ) )
     
    395401function add_option( $option, $value = '', $deprecated = '', $autoload = 'yes' ) {
    396402        global $wpdb;
    397403
    398         if ( !empty( $deprecated ) )
     404        if ( !empty( $deprecated ) ) {
    399405                _deprecated_argument( __FUNCTION__, '2.3' );
     406        }
    400407
    401         $option = trim($option);
    402         if ( empty($option) )
     408        $option = trim( $option );
     409       
     410        if ( empty( $option ) ) {
    403411                return false;
     412        }
    404413
     414        if ( 191 < strlen( $option ) ) {
     415                _doing_it_wrong( __FUNCTION__, __( 'The option name is longer than what can be stored in the options table.' ), '4.5' );
     416        }
     417
    405418        wp_protect_special_option( $option );
    406419
    407420        if ( is_object($value) )
     
    713726        } else {
    714727                $transient_timeout = '_transient_timeout_' . $transient;
    715728                $transient_option = '_transient_' . $transient;
     729
     730                if ( 191 < strlen( $transient_option ) || 191 < strlen( $transient_timeout ) ) {
     731                        _doing_it_wrong( __FUNCTION__, __( 'The transient name is longer than what can be stored in the options table.' ), '4.5' );
     732                }
     733
    716734                if ( false === get_option( $transient_option ) ) {
    717735                        $autoload = 'yes';
    718736                        if ( $expiration ) {