summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBharat Mediratta <bharat@menalto.com>2012-05-14 21:54:41 -0700
committerBharat Mediratta <bharat@menalto.com>2012-05-14 21:54:41 -0700
commit6a6b3f90f36293a40cba091c3ac387abb64f3c1a (patch)
treece1330f55dca8e91db39ab889af1f5e626a53eaa
parent9408074eb42e0d56a1626f4d08b1fdbd19e79fa4 (diff)
Verify that where() clauses are well formed. Fixes #1865.
-rw-r--r--modules/kohana23_compat/libraries/MY_Database_Builder.php6
-rw-r--r--system/libraries/Database_Builder.php8
2 files changed, 14 insertions, 0 deletions
diff --git a/modules/kohana23_compat/libraries/MY_Database_Builder.php b/modules/kohana23_compat/libraries/MY_Database_Builder.php
index 0b9dbe28..54429ab1 100644
--- a/modules/kohana23_compat/libraries/MY_Database_Builder.php
+++ b/modules/kohana23_compat/libraries/MY_Database_Builder.php
@@ -25,6 +25,9 @@ class Database_Builder extends Database_Builder_Core {
public function merge_where($tuples) {
if ($tuples) {
foreach ($tuples as $tuple) {
+ if (count($tuple) != 3) {
+ throw new Database_Exception("Column triplets require a column, op and value");
+ }
$this->where($tuple[0], $tuple[1], $tuple[2]);
}
}
@@ -38,6 +41,9 @@ class Database_Builder extends Database_Builder_Core {
public function merge_or_where($tuples) {
if ($tuples) {
foreach ($tuples as $tuple) {
+ if (count($tuple) != 3) {
+ throw new Database_Exception("Column triplets require a column, op and value");
+ }
$this->or_where($tuple[0], $tuple[1], $tuple[2]);
}
}
diff --git a/system/libraries/Database_Builder.php b/system/libraries/Database_Builder.php
index e86ce379..553ffd98 100644
--- a/system/libraries/Database_Builder.php
+++ b/system/libraries/Database_Builder.php
@@ -190,6 +190,8 @@ class Database_Builder_Core {
{
foreach ($columns as $column)
{
+ if (count($column) != 3)
+ throw new Database_Exception('Column triplets require a column, op and value');
$this->where[] = array('AND' => $column);
}
}
@@ -216,6 +218,8 @@ class Database_Builder_Core {
{
foreach ($columns as $column)
{
+ if (count($column) != 3)
+ throw new Database_Exception('Column triplets require a column, op and value');
$this->where[] = array('OR' => $column);
}
}
@@ -422,6 +426,8 @@ class Database_Builder_Core {
{
foreach ($columns as $column)
{
+ if (count($column) != 3)
+ throw new Database_Exception('Column triplets require a column, op and value');
$this->having[] = array('AND' => $column);
}
}
@@ -447,6 +453,8 @@ class Database_Builder_Core {
{
foreach ($columns as $column)
{
+ if (count($column) != 3)
+ throw new Database_Exception('Column triplets require a column, op and value');
$this->having[] = array('OR' => $column);
}
}