2014-11-02 22 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中修復。