WordPress.org

Make WordPress Core

Ticket #10788: 10788-transient-filters-safe-fix.patch

File 10788-transient-filters-safe-fix.patch, 2.0 KB (added by nacin, 4 years ago)
  • functions.php

     
    658658        global $_wp_using_ext_object_cache, $wpdb; 
    659659 
    660660        if ( $_wp_using_ext_object_cache ) { 
    661                 return wp_cache_delete($transient, 'transient'); 
     661                $value = wp_cache_delete($transient, 'transient'); 
    662662        } else { 
    663663                $transient = '_transient_' . esc_sql($transient); 
    664                 return delete_option($transient); 
     664                $value = delete_option($transient); 
    665665        } 
     666 
     667        return apply_filters('delete_transient_' . $transient, $value); 
    666668} 
    667669 
    668670/** 
     
    688690        if ( $_wp_using_ext_object_cache ) { 
    689691                $value = wp_cache_get($transient, 'transient'); 
    690692        } else { 
    691                 $transient_option = '_transient_' . esc_sql($transient); 
     693                $transient_option = '_transient_' . $transient; 
    692694                // If option is not in alloptions, it is not autoloaded and thus has a timeout 
    693695                $alloptions = wp_load_alloptions(); 
    694696                if ( !isset( $alloptions[$transient_option] ) ) { 
    695                         $transient_timeout = '_transient_timeout_' . esc_sql($transient); 
    696                         if ( get_option($transient_timeout) < time() ) { 
     697                        $transient_timeout = '_transient_timeout_' . $transient; 
     698                        if ( get_option( esc_sql($transient_timeout) ) < time() ) { 
    697699                                delete_option($transient_option); 
    698700                                delete_option($transient_timeout); 
    699701                                return false; 
    700702                        } 
    701703                } 
    702704 
    703                 $value = get_option($transient_option); 
     705                $value = get_option( esc_sql($transient_option) ); 
    704706        } 
    705707 
    706708        return apply_filters('transient_' . $transient, $value); 
     
    736738                                $autoload = 'no'; 
    737739                                add_option($transient_timeout, time() + $expiration, '', 'no'); 
    738740                        } 
    739                         return add_option($transient, $value, '', $autoload); 
     741                        $value = add_option($transient, $value, '', $autoload); 
    740742                } else { 
    741743                        if ( 0 != $expiration ) 
    742744                                update_option($transient_timeout, time() + $expiration); 
    743                         return update_option($transient, $value); 
     745                        $value = update_option($transient, $value); 
    744746                } 
    745747        } 
     748 
     749        return apply_filters('set_transient_' . $transient, $value); 
    746750} 
    747751 
    748752/**