Aleksander Machniak
2012-07-06 ef5f7fb13c437496467da0ea29e32bb5750da507
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.
1 files modified
14 ■■■■ changed files
program/include/rcube_session.php 14 ●●●● patch | view | raw | blame | history
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;
  }