Aleksander Machniak
2016-04-20 52106ffd3944a08d189a8b628d93d632d54ea307
Fix bug where rcube_contacts::get_record() could return cached result when requested record wasn't found (#5218)
2 files modified
8 ■■■■■ changed files
program/lib/Roundcube/rcube_addressbook.php 4 ●●●● patch | view | raw | blame | history
program/lib/Roundcube/rcube_contacts.php 4 ●●● patch | view | raw | blame | history
program/lib/Roundcube/rcube_addressbook.php
@@ -130,10 +130,10 @@
    /**
     * 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);
program/lib/Roundcube/rcube_contacts.php
@@ -542,7 +542,7 @@
     * @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 @@
            $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);