WordPress.org

Make WordPress Core

Ticket #3765: cron.php.diff

File cron.php.diff, 1.3 KB (added by dragonhard, 8 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