Skip to content

Commit 25222c6

Browse files
committed
### Fixed
- CS fixes (package handler) - Localize $@ variable (package handler)
1 parent 505aa59 commit 25222c6

File tree

2 files changed

+67
-42
lines changed

2 files changed

+67
-42
lines changed

CHANGELOG.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,29 @@
22

33
All notable changes to this project will be documented in this file, in reverse chronological order by release.
44

5+
## 1.0.5 - TBD
6+
7+
### Added
8+
9+
- Nothing.
10+
11+
### Changed
12+
13+
- Hide server info.
14+
15+
### Deprecated
16+
17+
- Nothing.
18+
19+
### Removed
20+
21+
- Nothing.
22+
23+
### Fixed
24+
25+
- CS fixes (package handler)
26+
- Localize $@ variable (package handler)
27+
528
## 1.0.4 - 20190419
629

730
### Added

src/Handler.pm

Lines changed: 44 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ use iMSCP::Cwd '$CWD';
3333
use iMSCP::Database;
3434
use iMSCP::Debug qw/ debug error /;
3535
use iMSCP::EventManager;
36-
use iMSCP::Execute 'execute';
36+
use iMSCP::Execute qw/ execute escapeShell /;
3737
use iMSCP::File;
3838
use iMSCP::TemplateParser qw/ getBloc replaceBloc process /;
3939
use Scalar::Defer 'lazy';
@@ -146,11 +146,12 @@ sub uninstall
146146
return $rs if $rs;
147147
}
148148

149+
local $@;
149150
eval {
150151
local $self->{'dbh'}->{'RaiseError'} = TRUE;
151152

152153
$self->{'dbh'}->do(
153-
"DROP DATABASE IF EXISTS @{ [ $self->{'dbh'}->quote_identifier( $::imscpConfig{'DATABASE_NAME'} . '_pma' ) ] }"
154+
"DROP DATABASE IF EXISTS `@{ [ $::imscpConfig{'DATABASE_NAME'} . '_pma' ] }`"
154155
);
155156

156157
my ( $controlUser ) = @{ $self->{'dbh'}->selectcol_arrayref(
@@ -209,10 +210,10 @@ sub afterFrontEndBuildConfFile
209210
"# SECTION custom END.\n",
210211
" # SECTION custom BEGIN.\n"
211212
. getBloc(
212-
"# SECTION custom BEGIN.\n",
213-
"# SECTION custom END.\n",
214-
${ $tplContent }
215-
)
213+
"# SECTION custom BEGIN.\n",
214+
"# SECTION custom END.\n",
215+
${ $tplContent }
216+
)
216217
. " include imscp_pma.conf;\n"
217218
. " # SECTION custom END.\n",
218219
${ $tplContent }
@@ -256,6 +257,7 @@ sub _buildConfigFiles
256257
{
257258
my ( $self ) = @_;
258259

260+
local $@;
259261
my $rs = eval {
260262
# Main configuration file
261263
local $self->{'dbh'}->{'RaiseError'} = TRUE;
@@ -274,7 +276,9 @@ sub _buildConfigFiles
274276
) || 'pma_' . randomStr( 12, iMSCP::Crypt::ALPHA64 ) );
275277

276278
( $config{'PMA_CONTROL_USER_PASSWD'} = decryptRijndaelCBC(
277-
$::imscpDBKey, $::imscpDBiv, $config{'PMA_CONTROL_USER_PASSWD'} // ''
279+
$::imscpDBKey,
280+
$::imscpDBiv,
281+
$config{'PMA_CONTROL_USER_PASSWD'} // ''
278282
) || randomStr( 16, iMSCP::Crypt::ALPHA64 ) );
279283

280284
(
@@ -403,12 +407,10 @@ sub _setupDatabase
403407

404408
my $database = ::setupGetQuestion( 'DATABASE_NAME' ) . '_pma';
405409

410+
local $@;
406411
eval {
407412
local $self->{'dbh'}->{'RaiseError'} = TRUE;
408-
$self->{'dbh'}->do( sprintf(
409-
'DROP DATABASE IF EXISTS %s',
410-
$self->{'dbh'}->quote_identifier( $database )
411-
));
413+
$self->{'dbh'}->do( "DROP DATABASE IF EXISTS `$database`" );
412414
};
413415
if ( $@ ) {
414416
error( $@ );
@@ -428,7 +430,7 @@ sub _setupDatabase
428430
$schemaFile->close();
429431

430432
my $rs = execute(
431-
"/usr/bin/mysql < $schemaFile",
433+
'/usr/bin/mysql < ' . escapeShell( $schemaFile ),
432434
\my $stdout,
433435
\my $stderr
434436
);
@@ -449,98 +451,98 @@ sub _setupSqlUser
449451
{
450452
my ( $self ) = @_;
451453

454+
local $@;
452455
eval {
453456
my $database = ::setupGetQuestion( 'DATABASE_NAME' ) . '_pma';
454-
my $dbUserHost = ::setupGetQuestion( 'DATABASE_USER_HOST' );
457+
my $databaseUserHost = ::setupGetQuestion( 'DATABASE_USER_HOST' );
455458
my $sqlServer = Servers::sqld->factory();
456459

457460
for my $host (
458461
$::imscpOldConfig{'DATABASE_USER_HOST'},
459-
$dbUserHost
462+
$databaseUserHost
460463
) {
461464
next unless length $host;
462465
$sqlServer->dropUser( $self->{'_pma_control_user'}, $host );
463466
}
464467

465468
$sqlServer->createUser(
466469
$self->{'_pma_control_user'},
467-
$dbUserHost,
470+
$databaseUserHost,
468471
$self->{'_pma_control_user_passwd'}
469472
);
470473

471474
local $self->{'dbh'}->{'RaiseError'} = TRUE;
472475

473476
$self->{'dbh'}->do(
474-
'GRANT USAGE ON mysql.* TO ?@?',
477+
'GRANT USAGE ON `mysql`.* TO ?@?',
475478
undef,
476479
$self->{'_pma_control_user'},
477-
$dbUserHost
480+
$databaseUserHost
478481
);
479482
$self->{'dbh'}->do(
480483
'
481484
GRANT SELECT (
482-
Host, User, Select_priv, Insert_priv, Update_priv,
483-
Delete_priv, Create_priv, Drop_priv, Reload_priv,
484-
Shutdown_priv, Process_priv, File_priv, Grant_priv,
485-
References_priv, Index_priv, Alter_priv, Show_db_priv,
486-
Super_priv, Create_tmp_table_priv, Lock_tables_priv,
487-
Execute_priv, Repl_slave_priv, Repl_client_priv
488-
) ON mysql.user TO ?@?
485+
`Host`,`User`,`Select_priv`,`Insert_priv`,
486+
`Update_priv`,`Delete_priv`,`Create_priv`,`Drop_priv`,
487+
`Reload_priv`,`Shutdown_priv`,`Process_priv`,
488+
`File_priv`,`Grant_priv`,`References_priv`,`Index_priv`,
489+
`Alter_priv`,`Show_db_priv`,`Super_priv`,
490+
`Create_tmp_table_priv`,`Lock_tables_priv`,`Execute_priv`,
491+
`Repl_slave_priv`,`Repl_client_priv`
492+
) ON `mysql`.`user` TO ?@?
489493
',
490-
undef, $self->{'_pma_control_user'}, $dbUserHost
494+
undef,
495+
$self->{'_pma_control_user'},
496+
$databaseUserHost
491497
);
492498

493499
$self->{'dbh'}->do(
494-
'GRANT SELECT ON mysql.db TO ?@?',
500+
'GRANT SELECT ON `mysql`.`db` TO ?@?',
495501
undef,
496502
$self->{'_pma_control_user'},
497-
$dbUserHost
503+
$databaseUserHost
498504
);
499505

500506
# Check for mysql.host table existence (as for MySQL >= 5.6.7, the
501507
# mysql.host table is no longer provided)
502508
if ( $self->{'dbh'}->selectrow_hashref(
503-
"SHOW tables FROM mysql LIKE 'host'"
509+
"SHOW tables FROM `mysql` LIKE 'host'"
504510
) ) {
505511
$self->{'dbh'}->do(
506-
'GRANT SELECT ON mysql.host TO ?@?',
512+
'GRANT SELECT ON `mysql`.`host` TO ?@?',
507513
undef,
508514
$self->{'_pma_control_user'},
509-
$dbUserHost
515+
$databaseUserHost
510516
);
511517
}
512518

513519
$self->{'dbh'}->do(
514-
'GRANT SELECT ON mysql.user TO ?@?',
520+
'GRANT SELECT ON `mysql`.`user` TO ?@?',
515521
undef,
516522
$self->{'_pma_control_user'},
517-
$dbUserHost
523+
$databaseUserHost
518524
);
519525
$self->{'dbh'}->do(
520526
'
521527
GRANT SELECT (
522-
Host, Db, User, Table_name, Table_priv, Column_priv
523-
) ON mysql.tables_priv
528+
`Host`,`Db`,`User`,`Table_name`,`Table_priv`,`Column_priv`
529+
) ON `mysql`.`tables_priv`
524530
TO?@?
525531
',
526532
undef,
527533
$self->{'_pma_control_user'},
528-
$dbUserHost
534+
$databaseUserHost
529535
);
530536

531537
$self->{'dbh'}->do(
532538
"
533-
GRANT SELECT, INSERT, UPDATE, DELETE
534-
ON @{ [
535-
$self->{'dbh'}->quote_identifier(
536-
$database
537-
) =~ s/([%_])/\\$1/gr
538-
] }.*
539+
GRANT SELECT,INSERT,UPDATE,DELETE
540+
ON `@{ [ $database =~ s/([%_])/\\$1/gr ] }`.*
539541
TO ?\@?
540542
",
541543
undef,
542544
$self->{'_pma_control_user'},
543-
$dbUserHost
545+
$databaseUserHost
544546
);
545547
};
546548
if ( $@ ) {

0 commit comments

Comments
 (0)