diff --git a/CHANGELOG b/CHANGELOG index 1647e8970..06cbb828c 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -9,6 +9,7 @@ CHANGELOG Roundcube Webmail - Password: Fix issue with Modoboa driver (#7372) - Mailvelope: Use sender's address to find pubkeys to check signatures (#7348) - Mailvelope: Fix Encrypt button hidden in Elastic (#7353) +- Fix PHP warning: count(): Parameter must be an array or an object... in ID command handler (#7392) RELEASE 1.4.4 ------------- diff --git a/program/lib/Roundcube/rcube_imap_generic.php b/program/lib/Roundcube/rcube_imap_generic.php index 50f7ebc63..4eacee929 100644 --- a/program/lib/Roundcube/rcube_imap_generic.php +++ b/program/lib/Roundcube/rcube_imap_generic.php @@ -1742,7 +1742,7 @@ class rcube_imap_generic * * @param array $items Client identification information key/value hash * - * @return array Server identification information key/value hash + * @return array|false Server identification information key/value hash, False on error * @since 0.6 */ public function id($items = array()) @@ -1761,10 +1761,12 @@ class rcube_imap_generic if ($code == self::ERROR_OK && $response) { $response = substr($response, 5); // remove prefix "* ID " $items = $this->tokenizeResponse($response, 1); - $result = null; + $result = array(); - for ($i=0, $len=count($items); $i<$len; $i += 2) { - $result[$items[$i]] = $items[$i+1]; + if (is_array($items)) { + for ($i=0, $len=count($items); $i<$len; $i += 2) { + $result[$items[$i]] = $items[$i+1]; + } } return $result;