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, 9 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/**