X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/449d082fcc4873c1f7d363a0d9f7409be7f6e77d..refs/tags/wordpress-3.4.2-scripts:/wp-admin/includes/class-ftp.php diff --git a/wp-admin/includes/class-ftp.php b/wp-admin/includes/class-ftp.php index 0bf25e9c..1ae3e870 100644 --- a/wp-admin/includes/class-ftp.php +++ b/wp-admin/includes/class-ftp.php @@ -278,7 +278,10 @@ class ftp_base { $dns=@gethostbyaddr($host); if(!$ip) $ip=$host; if(!$dns) $dns=$host; - if(ip2long($ip) === -1) { + // Validate the IPAddress PHP4 returns -1 for invalid, PHP5 false + // -1 === "255.255.255.255" which is the broadcast address which is also going to be invalid + $ipaslong = ip2long($ip); + if ( ($ipaslong == false) || ($ipaslong === -1) ) { $this->SendMSG("Wrong host name/address \"".$host."\""); return FALSE; } @@ -492,7 +495,7 @@ class ftp_base { $this->_features=array(); foreach($f as $k=>$v) { $v=explode(" ", trim($v)); - $this->_features[array_shift($v)]=$v;; + $this->_features[array_shift($v)]=$v; } return true; } @@ -893,11 +896,12 @@ class ftp_base { } } -$mod_sockets=TRUE; -if (!extension_loaded('sockets')) { - $prefix = (PHP_SHLIB_SUFFIX == 'dll') ? 'php_' : ''; - if(!@dl($prefix . 'sockets.' . PHP_SHLIB_SUFFIX)) $mod_sockets=FALSE; +$mod_sockets = extension_loaded( 'sockets' ); +if ( ! $mod_sockets && function_exists( 'dl' ) && is_callable( 'dl' ) ) { + $prefix = ( PHP_SHLIB_SUFFIX == 'dll' ) ? 'php_' : ''; + @dl( $prefix . 'sockets.' . PHP_SHLIB_SUFFIX ); + $mod_sockets = extension_loaded( 'sockets' ); } -require_once "class-ftp-".($mod_sockets?"sockets":"pure").".php"; +require_once "class-ftp-" . ( $mod_sockets ? "sockets" : "pure" ) . ".php"; ?>