summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2012-07-06 10:10:30 +0200
committerAleksander Machniak <alec@alec.pl>2012-07-06 10:10:30 +0200
commitef5f7fb13c437496467da0ea29e32bb5750da507 (patch)
tree49c3ef4b0cf2af4d70590c2d3fe3841ab3470488
parent5a927c78295a56ea88b6fe66bdcf3c3638d84e30 (diff)
There's a case (reason unknown) when destroy() is called with empty session key.
Handle this case properly to prevent from PHP error: Memcache::delete(): Key cannot be empty.
-rw-r--r--program/include/rcube_session.php14
1 files changed, 10 insertions, 4 deletions
diff --git a/program/include/rcube_session.php b/program/include/rcube_session.php
index 09a07d644..e3b5600ca 100644
--- a/program/include/rcube_session.php
+++ b/program/include/rcube_session.php
@@ -218,13 +218,14 @@ class rcube_session
* Handler for session_destroy()
*
* @param string Session ID
+ *
* @return boolean True on success
*/
public function db_destroy($key)
{
- $this->db->query(
- sprintf("DELETE FROM %s WHERE sess_id = ?", $this->db->table_name('session')),
- $key);
+ if ($key) {
+ $this->db->query(sprintf("DELETE FROM %s WHERE sess_id = ?", $this->db->table_name('session')), $key);
+ }
return true;
}
@@ -305,11 +306,16 @@ class rcube_session
* Handler for session_destroy() with memcache backend
*
* @param string Session ID
+ *
* @return boolean True on success
*/
public function mc_destroy($key)
{
- return $this->memcache->delete($key);
+ if ($key) {
+ $this->memcache->delete($key);
+ }
+
+ return true;
}