WordPress.org

Make WordPress Core

Ticket #3765: cron.php.diff

File cron.php.diff, 1.3 KB (added by dragonhard, 11 years ago)

Patch for infinite SSL-Loop in Wordpress 2.1

  • wp-includes/cron.php

     
    5454
    5555function wp_clear_scheduled_hook( $hook ) {
    5656        $args = array_slice( func_get_args(), 1 );
    57        
     57
    5858        while ( $timestamp = wp_next_scheduled( $hook, $args ) )
    5959                wp_unschedule_event( $timestamp, $hook, $args );
    6060}
     
    7373
    7474function spawn_cron() {
    7575        $crons = _get_cron_array();
    76        
     76
    7777        if ( !is_array($crons) )
    7878                return;
    79        
     79
    8080        $keys = array_keys( $crons );
    8181        if ( array_shift( $keys ) > time() )
    8282                return;
     
    8585        $parts = parse_url( $cron_url );
    8686
    8787        $argyle = @ fsockopen( $parts['host'], $_SERVER['SERVER_PORT'], $errno, $errstr, 0.01 );
     88
     89        if($parts['scheme']=='https' && version_compare(phpversion(), '4.3.0', '<'))
     90        {
     91                   return false;
     92        }
     93        if($parts['scheme']=='https'){
     94                   $argyle = @ fsockopen('ssl://'.$parts['host'], $_SERVER['SERVER_PORT'], $errno, $errstr, 0.01);
     95        } else {
     96                   $argyle = @ fsockopen($parts['host'], $_SERVER['SERVER_PORT'], $errno, $errstr, 0.01);
     97        }
     98
    8899        if ( $argyle )
    89100                fputs( $argyle,
    90101                          "GET {$parts['path']}?check=" . md5(DB_PASS . '187425') . " HTTP/1.0\r\n"
     
    98109                return;
    99110
    100111        $crons = _get_cron_array();
    101        
     112
    102113        if ( !is_array($crons) )
    103114                return;
    104115