Merge branch 'master' of github.com:phpmyadmin/phpmyadmin
This commit is contained in:
commit
5eadfc2fa4
@ -33,6 +33,7 @@ phpMyAdmin - ChangeLog
|
||||
- bug #3960 NavigationBarIconic config not honored
|
||||
- bug #3985 Call to undefined function mb_detect_encoding
|
||||
- bug #4007 Analyze option not shown for InnoDB tables
|
||||
- bug #4015 Forcing a storage engine for configuration storage
|
||||
|
||||
4.0.4.1 (2013-06-30)
|
||||
- [security] Global variables scope injection vulnerability (see PMASA-2013-7)
|
||||
|
||||
@ -44,7 +44,7 @@ CREATE TABLE IF NOT EXISTS `pma__bookmark` (
|
||||
`query` text NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
)
|
||||
ENGINE=MyISAM COMMENT='Bookmarks'
|
||||
COMMENT='Bookmarks'
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
@ -65,7 +65,7 @@ CREATE TABLE IF NOT EXISTS `pma__column_info` (
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `db_name` (`db_name`,`table_name`,`column_name`)
|
||||
)
|
||||
ENGINE=MyISAM COMMENT='Column information for phpMyAdmin'
|
||||
COMMENT='Column information for phpMyAdmin'
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
@ -84,7 +84,7 @@ CREATE TABLE IF NOT EXISTS `pma__history` (
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `username` (`username`,`db`,`table`,`timevalue`)
|
||||
)
|
||||
ENGINE=MyISAM COMMENT='SQL history for phpMyAdmin'
|
||||
COMMENT='SQL history for phpMyAdmin'
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
@ -100,7 +100,7 @@ CREATE TABLE IF NOT EXISTS `pma__pdf_pages` (
|
||||
PRIMARY KEY (`page_nr`),
|
||||
KEY `db_name` (`db_name`)
|
||||
)
|
||||
ENGINE=MyISAM COMMENT='PDF relation pages for phpMyAdmin'
|
||||
COMMENT='PDF relation pages for phpMyAdmin'
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
@ -114,7 +114,7 @@ CREATE TABLE IF NOT EXISTS `pma__recent` (
|
||||
`tables` text NOT NULL,
|
||||
PRIMARY KEY (`username`)
|
||||
)
|
||||
ENGINE=MyISAM COMMENT='Recently accessed tables'
|
||||
COMMENT='Recently accessed tables'
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
@ -131,7 +131,7 @@ CREATE TABLE IF NOT EXISTS `pma__table_uiprefs` (
|
||||
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`username`,`db_name`,`table_name`)
|
||||
)
|
||||
ENGINE=MyISAM COMMENT='Tables'' UI preferences'
|
||||
COMMENT='Tables'' UI preferences'
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
@ -150,7 +150,7 @@ CREATE TABLE IF NOT EXISTS `pma__relation` (
|
||||
PRIMARY KEY (`master_db`,`master_table`,`master_field`),
|
||||
KEY `foreign_field` (`foreign_db`,`foreign_table`)
|
||||
)
|
||||
ENGINE=MyISAM COMMENT='Relation table'
|
||||
COMMENT='Relation table'
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
@ -167,7 +167,7 @@ CREATE TABLE IF NOT EXISTS `pma__table_coords` (
|
||||
`y` float unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (`db_name`,`table_name`,`pdf_page_number`)
|
||||
)
|
||||
ENGINE=MyISAM COMMENT='Table coordinates for phpMyAdmin PDF output'
|
||||
COMMENT='Table coordinates for phpMyAdmin PDF output'
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
@ -182,7 +182,7 @@ CREATE TABLE IF NOT EXISTS `pma__table_info` (
|
||||
`display_field` varchar(64) NOT NULL default '',
|
||||
PRIMARY KEY (`db_name`,`table_name`)
|
||||
)
|
||||
ENGINE=MyISAM COMMENT='Table information for phpMyAdmin'
|
||||
COMMENT='Table information for phpMyAdmin'
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
@ -200,7 +200,7 @@ CREATE TABLE IF NOT EXISTS `pma__designer_coords` (
|
||||
`h` TINYINT,
|
||||
PRIMARY KEY (`db_name`,`table_name`)
|
||||
)
|
||||
ENGINE=MyISAM COMMENT='Table coordinates for Designer'
|
||||
COMMENT='Table coordinates for Designer'
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
@ -222,7 +222,7 @@ CREATE TABLE IF NOT EXISTS `pma__tracking` (
|
||||
`tracking_active` int(1) unsigned NOT NULL default '1',
|
||||
PRIMARY KEY (`db_name`,`table_name`,`version`)
|
||||
)
|
||||
ENGINE=MyISAM ROW_FORMAT=COMPACT COMMENT='Database changes tracking for phpMyAdmin'
|
||||
COMMENT='Database changes tracking for phpMyAdmin'
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
@ -237,5 +237,5 @@ CREATE TABLE IF NOT EXISTS `pma__userconfig` (
|
||||
`config_data` text NOT NULL,
|
||||
PRIMARY KEY (`username`)
|
||||
)
|
||||
ENGINE=MyISAM COMMENT='User preferences storage for phpMyAdmin'
|
||||
COMMENT='User preferences storage for phpMyAdmin'
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
|
||||
|
||||
@ -31,7 +31,7 @@ CREATE TABLE IF NOT EXISTS `pma__bookmark` (
|
||||
`query` text NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
)
|
||||
ENGINE=InnoDB COMMENT='Bookmarks'
|
||||
COMMENT='Bookmarks'
|
||||
COLLATE utf8_bin;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
@ -52,7 +52,7 @@ CREATE TABLE IF NOT EXISTS `pma__column_info` (
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `db_name` (`db_name`,`table_name`,`column_name`)
|
||||
)
|
||||
ENGINE=InnoDB COMMENT='Column information for phpMyAdmin'
|
||||
COMMENT='Column information for phpMyAdmin'
|
||||
COLLATE utf8_bin;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
@ -71,7 +71,7 @@ CREATE TABLE IF NOT EXISTS `pma__history` (
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `username` (`username`,`db`,`table`,`timevalue`)
|
||||
)
|
||||
ENGINE=InnoDB COMMENT='SQL history for phpMyAdmin'
|
||||
COMMENT='SQL history for phpMyAdmin'
|
||||
COLLATE utf8_bin;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
@ -87,7 +87,7 @@ CREATE TABLE IF NOT EXISTS `pma__pdf_pages` (
|
||||
PRIMARY KEY (`page_nr`),
|
||||
KEY `db_name` (`db_name`)
|
||||
)
|
||||
ENGINE=InnoDB COMMENT='PDF relation pages for phpMyAdmin'
|
||||
COMMENT='PDF relation pages for phpMyAdmin'
|
||||
COLLATE utf8_bin;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
@ -101,7 +101,7 @@ CREATE TABLE IF NOT EXISTS `pma__recent` (
|
||||
`tables` text NOT NULL,
|
||||
PRIMARY KEY (`username`)
|
||||
)
|
||||
ENGINE=InnoDB COMMENT='Recently accessed tables'
|
||||
COMMENT='Recently accessed tables'
|
||||
COLLATE utf8_bin;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
@ -118,7 +118,7 @@ CREATE TABLE IF NOT EXISTS `pma__table_uiprefs` (
|
||||
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`username`,`db_name`,`table_name`)
|
||||
)
|
||||
ENGINE=InnoDB COMMENT='Tables'' UI preferences'
|
||||
COMMENT='Tables'' UI preferences'
|
||||
COLLATE utf8_bin;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
@ -137,7 +137,7 @@ CREATE TABLE IF NOT EXISTS `pma__relation` (
|
||||
PRIMARY KEY (`master_db`,`master_table`,`master_field`),
|
||||
KEY `foreign_field` (`foreign_db`,`foreign_table`)
|
||||
)
|
||||
ENGINE=InnoDB COMMENT='Relation table'
|
||||
COMMENT='Relation table'
|
||||
COLLATE utf8_bin;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
@ -154,7 +154,7 @@ CREATE TABLE IF NOT EXISTS `pma__table_coords` (
|
||||
`y` float NOT NULL default '0',
|
||||
PRIMARY KEY (`db_name`,`table_name`,`pdf_page_number`)
|
||||
)
|
||||
ENGINE=InnoDB COMMENT='Table coordinates for phpMyAdmin PDF output'
|
||||
COMMENT='Table coordinates for phpMyAdmin PDF output'
|
||||
COLLATE utf8_bin;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
@ -169,7 +169,7 @@ CREATE TABLE IF NOT EXISTS `pma__table_info` (
|
||||
`display_field` varchar(64) NOT NULL default '',
|
||||
PRIMARY KEY (`db_name`,`table_name`)
|
||||
)
|
||||
ENGINE=InnoDB COMMENT='Table information for phpMyAdmin'
|
||||
COMMENT='Table information for phpMyAdmin'
|
||||
COLLATE utf8_bin;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
@ -187,7 +187,7 @@ CREATE TABLE IF NOT EXISTS `pma__designer_coords` (
|
||||
`h` INT,
|
||||
PRIMARY KEY (`db_name`,`table_name`)
|
||||
)
|
||||
ENGINE=InnoDB COMMENT='Table coordinates for Designer'
|
||||
COMMENT='Table coordinates for Designer'
|
||||
COLLATE utf8_bin;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
@ -209,7 +209,6 @@ CREATE TABLE IF NOT EXISTS `pma__tracking` (
|
||||
`tracking_active` int(1) NOT NULL default '1',
|
||||
PRIMARY KEY (`db_name`,`table_name`,`version`)
|
||||
)
|
||||
ENGINE=InnoDB
|
||||
COLLATE utf8_bin;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
@ -224,5 +223,5 @@ CREATE TABLE IF NOT EXISTS `pma__userconfig` (
|
||||
`config_data` text NOT NULL,
|
||||
PRIMARY KEY (`username`)
|
||||
)
|
||||
ENGINE=InnoDB COMMENT='User preferences storage for phpMyAdmin'
|
||||
COMMENT='User preferences storage for phpMyAdmin'
|
||||
COLLATE utf8_bin;
|
||||
|
||||
@ -198,41 +198,41 @@ $cfg_db['_overrides']['Servers/1/extension'] = extension_loaded('mysqli')
|
||||
* Use only full paths and form ids
|
||||
*/
|
||||
$cfg_db['_validators'] = array(
|
||||
'CharTextareaCols' => 'PMA_validatePositiveNumber',
|
||||
'CharTextareaRows' => 'PMA_validatePositiveNumber',
|
||||
'ExecTimeLimit' => 'PMA_validateNonNegativeNumber',
|
||||
'Export/sql_max_query_size' => 'PMA_validatePositiveNumber',
|
||||
'ForeignKeyMaxLimit' => 'PMA_validatePositiveNumber',
|
||||
'Import/csv_enclosed' => array(array('PMA_validateByRegex', '/^.?$/')),
|
||||
'Import/csv_escaped' => array(array('PMA_validateByRegex', '/^.$/')),
|
||||
'Import/csv_terminated' => array(array('PMA_validateByRegex', '/^.$/')),
|
||||
'Import/ldi_enclosed' => array(array('PMA_validateByRegex', '/^.?$/')),
|
||||
'Import/ldi_escaped' => array(array('PMA_validateByRegex', '/^.$/')),
|
||||
'Import/ldi_terminated' => array(array('PMA_validateByRegex', '/^.$/')),
|
||||
'Import/skip_queries' => 'PMA_validateNonNegativeNumber',
|
||||
'InsertRows' => 'PMA_validatePositiveNumber',
|
||||
'NumRecentTables' => 'PMA_validateNonNegativeNumber',
|
||||
'LimitChars' => 'PMA_validatePositiveNumber',
|
||||
'LoginCookieValidity' => 'PMA_validatePositiveNumber',
|
||||
'LoginCookieStore' => 'PMA_validateNonNegativeNumber',
|
||||
'MaxDbList' => 'PMA_validatePositiveNumber',
|
||||
'MaxNavigationItems' => 'PMA_validatePositiveNumber',
|
||||
'MaxCharactersInDisplayedSQL' => 'PMA_validatePositiveNumber',
|
||||
'MaxRows' => 'PMA_validatePositiveNumber',
|
||||
'MaxTableList' => 'PMA_validatePositiveNumber',
|
||||
'MemoryLimit' => array(array('PMA_validateByRegex', '/^\d+(?:[kmg])?$/i')),
|
||||
'NavigationTreeTableLevel' => 'PMA_validatePositiveNumber',
|
||||
'QueryHistoryMax' => 'PMA_validatePositiveNumber',
|
||||
'QueryWindowWidth' => 'PMA_validatePositiveNumber',
|
||||
'QueryWindowHeight' => 'PMA_validatePositiveNumber',
|
||||
'RepeatCells' => 'PMA_validateNonNegativeNumber',
|
||||
'Server' => 'PMA_validateServer',
|
||||
'Server_pmadb' => 'PMA_validatePMAStorage',
|
||||
'Servers/1/port' => 'PMA_validatePortNumber',
|
||||
'Servers/1/hide_db' => 'PMA_validateRegex',
|
||||
'TextareaCols' => 'PMA_validatePositiveNumber',
|
||||
'TextareaRows' => 'PMA_validatePositiveNumber',
|
||||
'TrustedProxies' => 'PMA_validateTrustedProxies');
|
||||
'CharTextareaCols' => 'validatePositiveNumber',
|
||||
'CharTextareaRows' => 'validatePositiveNumber',
|
||||
'ExecTimeLimit' => 'validateNonNegativeNumber',
|
||||
'Export/sql_max_query_size' => 'validatePositiveNumber',
|
||||
'ForeignKeyMaxLimit' => 'validatePositiveNumber',
|
||||
'Import/csv_enclosed' => array(array('validateByRegex', '/^.?$/')),
|
||||
'Import/csv_escaped' => array(array('validateByRegex', '/^.$/')),
|
||||
'Import/csv_terminated' => array(array('validateByRegex', '/^.$/')),
|
||||
'Import/ldi_enclosed' => array(array('validateByRegex', '/^.?$/')),
|
||||
'Import/ldi_escaped' => array(array('validateByRegex', '/^.$/')),
|
||||
'Import/ldi_terminated' => array(array('validateByRegex', '/^.$/')),
|
||||
'Import/skip_queries' => 'validateNonNegativeNumber',
|
||||
'InsertRows' => 'validatePositiveNumber',
|
||||
'NumRecentTables' => 'validateNonNegativeNumber',
|
||||
'LimitChars' => 'validatePositiveNumber',
|
||||
'LoginCookieValidity' => 'validatePositiveNumber',
|
||||
'LoginCookieStore' => 'validateNonNegativeNumber',
|
||||
'MaxDbList' => 'validatePositiveNumber',
|
||||
'MaxNavigationItems' => 'validatePositiveNumber',
|
||||
'MaxCharactersInDisplayedSQL' => 'validatePositiveNumber',
|
||||
'MaxRows' => 'validatePositiveNumber',
|
||||
'MaxTableList' => 'validatePositiveNumber',
|
||||
'MemoryLimit' => array(array('validateByRegex', '/^\d+(?:[kmg])?$/i')),
|
||||
'NavigationTreeTableLevel' => 'validatePositiveNumber',
|
||||
'QueryHistoryMax' => 'validatePositiveNumber',
|
||||
'QueryWindowWidth' => 'validatePositiveNumber',
|
||||
'QueryWindowHeight' => 'validatePositiveNumber',
|
||||
'RepeatCells' => 'validateNonNegativeNumber',
|
||||
'Server' => 'validateServer',
|
||||
'Server_pmadb' => 'validatePMAStorage',
|
||||
'Servers/1/port' => 'validatePortNumber',
|
||||
'Servers/1/hide_db' => 'validateRegex',
|
||||
'TextareaCols' => 'validatePositiveNumber',
|
||||
'TextareaRows' => 'validatePositiveNumber',
|
||||
'TrustedProxies' => 'validateTrustedProxies');
|
||||
|
||||
/**
|
||||
* Additional validators used for user preferences
|
||||
|
||||
@ -447,6 +447,7 @@ function PMA_addJsValidate($field_id, $validators, &$js_array)
|
||||
foreach ((array)$validators as $validator) {
|
||||
$validator = (array)$validator;
|
||||
$v_name = array_shift($validator);
|
||||
$v_name = "PMA_" . $v_name;
|
||||
$v_args = array();
|
||||
foreach ($validator as $arg) {
|
||||
$v_args[] = PMA_escapeJsString($arg);
|
||||
|
||||
@ -109,6 +109,7 @@ class PMA_Validator
|
||||
foreach ((array)$validators[$vid] as $validator) {
|
||||
$vdef = (array) $validator;
|
||||
$vname = array_shift($vdef);
|
||||
$vname = "Validator::" . $vname;
|
||||
$args = array_merge(array($vid, &$arguments), $vdef);
|
||||
$r = call_user_func_array($vname, $args);
|
||||
|
||||
|
||||
@ -772,9 +772,9 @@ class PMA_FormDisplay_Tpl_Test extends PHPUnit_Framework_TestCase
|
||||
|
||||
$this->assertEquals(
|
||||
array(
|
||||
'validateField(\'testID\', \'\\\';\', true, [\'\\\\r\\\\n\\\\\\\'' .
|
||||
'validateField(\'testID\', \'PMA_\\\';\', true, [\'\\\\r\\\\n\\\\\\\'' .
|
||||
'<scrIpt></\\\' + \\\'script>\'])',
|
||||
'validateField(\'testID\', \'\', true)'
|
||||
'validateField(\'testID\', \'PMA_\', true)'
|
||||
),
|
||||
$js
|
||||
);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user