Fix various PHP code bugs found using static analysis (#1489086)

pull/73/head
Aleksander Machniak 12 years ago
parent c027ba7709
commit ce89ecd542

@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail CHANGELOG Roundcube Webmail
=========================== ===========================
- Fix various PHP code bugs found using static analysis (#1489086)
- Fix backslash character handling on vCard import (#1489085) - Fix backslash character handling on vCard import (#1489085)
- Fix csv import from Thunderbird with French localization (#1489059) - Fix csv import from Thunderbird with French localization (#1489059)
- Fix messages list focus issue in Opera and Webkit (#1489058) - Fix messages list focus issue in Opera and Webkit (#1489058)

@ -47,6 +47,8 @@ class enigma extends rcube_plugin
$rcmail = rcmail::get_instance(); $rcmail = rcmail::get_instance();
$this->rc = $rcmail; $this->rc = $rcmail;
$section = rcube_utils::get_input_value('_section', rcube_utils::INPUT_GET);
if ($this->rc->task == 'mail') { if ($this->rc->task == 'mail') {
// message parse/display hooks // message parse/display hooks
$this->add_hook('message_part_structure', array($this, 'parse_structure')); $this->add_hook('message_part_structure', array($this, 'parse_structure'));
@ -79,7 +81,6 @@ class enigma extends rcube_plugin
$this->register_action('plugin.enigma', array($this, 'preferences_ui')); $this->register_action('plugin.enigma', array($this, 'preferences_ui'));
// grab keys/certs management iframe requests // grab keys/certs management iframe requests
$section = rcube_utils::get_input_value('_section', rcube_utils::INPUT_GET);
if ($this->rc->action == 'edit-prefs' && preg_match('/^enigma(certs|keys)/', $section)) { if ($this->rc->action == 'edit-prefs' && preg_match('/^enigma(certs|keys)/', $section)) {
$this->load_ui(); $this->load_ui();
$this->ui->init($section); $this->ui->init($section);

@ -374,17 +374,15 @@ class enigma_engine
{ {
// @TODO: Handle big bodies using (temp) files // @TODO: Handle big bodies using (temp) files
// @TODO: caching of verification result // @TODO: caching of verification result
$sig = $this->pgp_driver->verify($msg_body, $sig_body); $sig = $this->pgp_driver->verify($msg_body, $sig_body);
if (($sig instanceof enigma_error) && $sig->getCode() != enigma_error::E_KEYNOTFOUND) if (($sig instanceof enigma_error) && $sig->getCode() != enigma_error::E_KEYNOTFOUND)
rcube::raise_error(array( rcube::raise_error(array(
'code' => 600, 'type' => 'php', 'code' => 600, 'type' => 'php',
'file' => __FILE__, 'line' => __LINE__, 'file' => __FILE__, 'line' => __LINE__,
'message' => "Enigma plugin: " . $error->getMessage() 'message' => "Enigma plugin: " . $sig->getMessage()
), true, false); ), true, false);
//print_r($sig);
return $sig; return $sig;
} }
@ -399,11 +397,9 @@ class enigma_engine
{ {
// @TODO: Handle big bodies using (temp) files // @TODO: Handle big bodies using (temp) files
// @TODO: caching of verification result // @TODO: caching of verification result
$key = ''; $pass = ''; // @TODO
$result = $this->pgp_driver->decrypt($msg_body, $key, $pass); $result = $this->pgp_driver->decrypt($msg_body, $key, $pass);
//print_r($result);
if ($result instanceof enigma_error) { if ($result instanceof enigma_error) {
$err_code = $result->getCode(); $err_code = $result->getCode();
if (!in_array($err_code, array(enigma_error::E_KEYNOTFOUND, enigma_error::E_BADPASS))) if (!in_array($err_code, array(enigma_error::E_KEYNOTFOUND, enigma_error::E_BADPASS)))

@ -12,6 +12,7 @@ class rcube_pam_password
function save($currpass, $newpass) function save($currpass, $newpass)
{ {
$user = $_SESSION['username']; $user = $_SESSION['username'];
$error = '';
if (extension_loaded('pam') || extension_loaded('pam_auth')) { if (extension_loaded('pam') || extension_loaded('pam_auth')) {
if (pam_auth($user, $currpass, $error, false)) { if (pam_auth($user, $currpass, $error, false)) {

@ -128,7 +128,7 @@ class rcube_db
$dsn_string = $this->dsn_string($dsn); $dsn_string = $this->dsn_string($dsn);
$dsn_options = $this->dsn_options($dsn); $dsn_options = $this->dsn_options($dsn);
if ($db_pconn) { if ($this->db_pconn) {
$dsn_options[PDO::ATTR_PERSISTENT] = true; $dsn_options[PDO::ATTR_PERSISTENT] = true;
} }

@ -119,7 +119,7 @@ class rcube_smtp
} }
// try to connect to server and exit on failure // try to connect to server and exit on failure
$result = $this->conn->connect($smtp_timeout); $result = $this->conn->connect($CONFIG['smtp_timeout']);
if (PEAR::isError($result)) { if (PEAR::isError($result)) {
$this->response[] = "Connection failed: ".$result->getMessage(); $this->response[] = "Connection failed: ".$result->getMessage();

Loading…
Cancel
Save