From 78a58162d8e9c46a90c8406605f4e58bd6ca54fe Mon Sep 17 00:00:00 2001 From: Marc-Oliver Teschke <marcoliverteschke@mac.com> Date: Mon, 14 Apr 2014 11:08:01 -0400 Subject: [PATCH] When checking if DB schema is up-to-date, limit the checks to tables in our current schema. Otherwise installer might return false positives when DB user has access to multiple schemas. --- program/lib/Roundcube/rcube_db.php | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) diff --git a/program/lib/Roundcube/rcube_db.php b/program/lib/Roundcube/rcube_db.php index 2828f26..a2271fd 100644 --- a/program/lib/Roundcube/rcube_db.php +++ b/program/lib/Roundcube/rcube_db.php @@ -609,7 +609,8 @@ { // get tables if not cached if ($this->tables === null) { - $q = $this->query('SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES ORDER BY TABLE_NAME'); + $q = $this->query('SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = ? ORDER BY TABLE_NAME', + array($this->db_dsnw_array['database'])); if ($q) { $this->tables = $q->fetchAll(PDO::FETCH_COLUMN, 0); @@ -631,8 +632,8 @@ */ public function list_cols($table) { - $q = $this->query('SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = ?', - array($table)); + $q = $this->query('SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = ? AND TABLE_SCHEMA = ?', + array($table, $this->db_dsnw_array['database'])); if ($q) { return $q->fetchAll(PDO::FETCH_COLUMN, 0); -- Gitblit v1.9.1