Yaron Koren has submitted this change and it was merged.

Change subject: Added validation to CargoUtils::getTableSchemas()
......................................................................


Added validation to CargoUtils::getTableSchemas()

Change-Id: I0db525403eaf6151faf69c5173c7bb3dbc2d1744
---
M CargoSQLQuery.php
M CargoUtils.php
2 files changed, 14 insertions(+), 2 deletions(-)

Approvals:
  Yaron Koren: Checked; Looks good to me, approved



diff --git a/CargoSQLQuery.php b/CargoSQLQuery.php
index 6044228..6b14ce9 100644
--- a/CargoSQLQuery.php
+++ b/CargoSQLQuery.php
@@ -101,8 +101,10 @@
         * some of the parameters need to be checked for these strings,
         * but we might as well validate all of them.
         *
-        * The function setDescriptionsForFields() also does specific
-        * validation of the "tables=" and "fields=" parameters.
+        * The function CargoUtils::getTableSchemas() also does specific
+        * validation of the "tables" parameter, while this class's
+        * setDescriptionsForFields() does validation of the "fields="
+        * parameter.
         */
        public static function validateValues( $tablesStr, $fieldsStr, 
$whereStr, $joinOnStr, $groupByStr,
                $havingStr, $orderByStr, $limitStr ) {
diff --git a/CargoUtils.php b/CargoUtils.php
index 1d6ed2c..f971e02 100644
--- a/CargoUtils.php
+++ b/CargoUtils.php
@@ -149,6 +149,16 @@
                        $tableSchemaString = $row['table_schema'];
                        $tableSchemas[$tableName] = 
CargoTableSchema::newFromDBString( $tableSchemaString );
                }
+
+               // Validate the table names.
+               if ( count( $tableSchemas ) < count( $mainTableNames ) ) {
+                       foreach ( $mainTableNames as $tableName ) {
+                               if ( !array_key_exists( $tableName, 
$tableSchemas ) ) {
+                                       throw new MWException( "Error: table 
\"$tableName\" not found." );
+                               }
+                       }
+               }
+
                return $tableSchemas;
        }
 

-- 
To view, visit https://gerrit.wikimedia.org/r/227737
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I0db525403eaf6151faf69c5173c7bb3dbc2d1744
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Cargo
Gerrit-Branch: master
Gerrit-Owner: Yaron Koren <yaro...@gmail.com>
Gerrit-Reviewer: Yaron Koren <yaro...@gmail.com>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to