Merge remote-tracking branch 'origin/QA_4_6' into QA_4_6
This commit is contained in:
commit
48cd299dca
@ -1245,17 +1245,22 @@ class Table
|
||||
* checks if given name is a valid table name,
|
||||
* currently if not empty, trailing spaces, '.', '/' and '\'
|
||||
*
|
||||
* @param string $table_name name to check
|
||||
* @param string $table_name name to check
|
||||
* @param boolean $is_backquoted whether this name is used inside backquotes or not
|
||||
*
|
||||
* @todo add check for valid chars in filename on current system/os
|
||||
* @see https://dev.mysql.com/doc/refman/5.0/en/legal-names.html
|
||||
*
|
||||
* @return boolean whether the string is valid or not
|
||||
*/
|
||||
static function isValidName($table_name)
|
||||
static function isValidName($table_name, $is_backquoted = false)
|
||||
{
|
||||
if ($table_name !== trim($table_name)) {
|
||||
// trailing spaces
|
||||
if ($table_name !== rtrim($table_name)) {
|
||||
// trailing spaces not allowed even in backquotes
|
||||
return false;
|
||||
}
|
||||
if (! $is_backquoted && $table_name !== trim($table_name)) {
|
||||
// spaces at the start or in between
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -1310,7 +1315,10 @@ class Table
|
||||
return true;
|
||||
}
|
||||
|
||||
if (! Table::isValidName($new_name)) {
|
||||
// Allow whitespaces (not trailing) in $new_name,
|
||||
// since we are using $backquoted in getting the fullName of table
|
||||
// below to be used in the query
|
||||
if (! Table::isValidName($new_name, true)) {
|
||||
$this->errors[] = __('Invalid table name:') . ' '
|
||||
. $new_table->getFullName();
|
||||
return false;
|
||||
|
||||
@ -226,7 +226,12 @@ if (isset($result) && empty($message_to_show)) {
|
||||
}
|
||||
exit;
|
||||
}
|
||||
} else {
|
||||
$_message = $result
|
||||
? PMA\libraries\Message::success($_message)
|
||||
: PMA\libraries\Message::error($_message);
|
||||
}
|
||||
|
||||
if (! empty($warning_messages)) {
|
||||
$_message = new PMA\libraries\Message;
|
||||
$_message->addMessages($warning_messages);
|
||||
|
||||
@ -385,11 +385,11 @@ class TableTest extends PMATestCase
|
||||
*
|
||||
* @dataProvider dataValidateName
|
||||
*/
|
||||
public function testValidateName($name, $result)
|
||||
public function testValidateName($name, $result, $is_backquoted=false)
|
||||
{
|
||||
$this->assertEquals(
|
||||
$result,
|
||||
Table::isValidName($name)
|
||||
Table::isValidName($name, $is_backquoted)
|
||||
);
|
||||
}
|
||||
|
||||
@ -405,6 +405,10 @@ class TableTest extends PMATestCase
|
||||
array('te/st', false),
|
||||
array('te.st', false),
|
||||
array('te\\st', false),
|
||||
array('te st', true),
|
||||
array(' te st', true, true),
|
||||
array('test ', false),
|
||||
array('test ', false, true),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user