Aleksander Machniak
2012-07-06 969ff01ac8f1712540f4f05d116618b028c7af27
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.

Conflicts:

program/include/rcube_session.php
1 files modified
14 ■■■■ changed files
program/include/rcube_session.php 14 ●●●● patch | view | raw | blame | history
program/include/rcube_session.php
@@ -221,13 +221,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 = ?", get_table_name('session')),
      $key);
    if ($key) {
      $this->db->query(sprintf("DELETE FROM %s WHERE sess_id = ?", get_table_name('session')), $key);
    }
    return true;
  }
@@ -308,11 +309,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;
  }