2014-11-02 54 views
0

我的应用程序曾用于在Amazon Linux服务器上运行在PHP 5.4.34上。我们升级到PHP 5.5.18以使用一些较新的库。现在phpseclib生成错误: 未定义偏移量:5827在/var/www/lib/ShellClient/phpseclib/Math/BigInteger.php线1073在php5.5上运行的Phpseclib

在此应用我经由Net_SSH2登录并执行命令另一亚马逊Linux服务器。

予先从Crypt_RSA和Net_SSH2 下面的代码发出通知在无限循环:

$key = new \Crypt_RSA(); 
$key->loadKey(file_get_contents([PUBLIC_KEY])); 
$ssh = new \Net_SSH2([IP_ADDRESS]], 22); 
if(!$ssh->login([USERNAME]], $key)){   
    return false;    
} 
$ssh->exec([COMMAND]]); 
return true; 

的错误是在BigInteger.php在功能_subtract,这是由Net_SSH2使用)。

PHP公告:未定义抵消:5827在/var/www/lib/ShellClient/phpseclib/Math/BigInteger.php上线1073

if ($carry) { 
     for (; !$x_value[$i]; ++$i) { //1073 
      $x_value[$i] = MATH_BIGINTEGER_MAX_DIGIT; 
     } 
    --$x_value[$i]; 
    } 

之前我的应用程序在PHP 5.4.34和登录通过跑NetSSH2正常工作没有任何警告。

回答

2

此问题已在phpseclib 0.3.9中修复。