From 52106ffd3944a08d189a8b628d93d632d54ea307 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Wed, 20 Apr 2016 20:25:23 +0200 Subject: [PATCH] Fix bug where rcube_contacts::get_record() could return cached result when requested record wasn't found (#5218) --- program/lib/Roundcube/rcube_addressbook.php | 4 ++-- program/lib/Roundcube/rcube_contacts.php | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/program/lib/Roundcube/rcube_addressbook.php b/program/lib/Roundcube/rcube_addressbook.php index 5f13da0bc..ae72dcd02 100644 --- a/program/lib/Roundcube/rcube_addressbook.php +++ b/program/lib/Roundcube/rcube_addressbook.php @@ -130,10 +130,10 @@ abstract class rcube_addressbook /** * Get a specific contact record * - * @param mixed record identifier(s) + * @param mixed Record identifier(s) * @param boolean True to return record as associative array, otherwise a result set is returned * - * @return mixed Result object with all record fields or False if not found + * @return rcube_result_set|array Result object with all record fields */ abstract function get_record($id, $assoc=false); diff --git a/program/lib/Roundcube/rcube_contacts.php b/program/lib/Roundcube/rcube_contacts.php index c9c01e46a..71549e993 100644 --- a/program/lib/Roundcube/rcube_contacts.php +++ b/program/lib/Roundcube/rcube_contacts.php @@ -542,7 +542,7 @@ class rcube_contacts extends rcube_addressbook * @param mixed $id Record identifier(s) * @param bool $assoc Enables returning associative array * - * @return mixed Result object with all record fields or False if not found + * @return rcube_result_set|array Result object with all record fields */ function get_record($id, $assoc = false) { @@ -560,6 +560,8 @@ class rcube_contacts extends rcube_addressbook $this->user_id ); + $this->result = null; + if ($sql_arr = $this->db->fetch_assoc()) { $record = $this->convert_db_data($sql_arr); $this->result = new rcube_result_set(1);