From ef5f7fb13c437496467da0ea29e32bb5750da507 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Fri, 06 Jul 2012 04:10:30 -0400
Subject: [PATCH] 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.
---
program/include/rcube_session.php | 14 ++++++++++----
1 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/program/include/rcube_session.php b/program/include/rcube_session.php
index 09a07d6..e3b5600 100644
--- a/program/include/rcube_session.php
+++ b/program/include/rcube_session.php
@@ -218,13 +218,14 @@
* 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 @@
* 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;
}
--
Gitblit v1.9.1