@@ -33,7 +33,7 @@ use iMSCP::Cwd '$CWD';
33
33
use iMSCP::Database;
34
34
use iMSCP::Debug qw/ debug error / ;
35
35
use iMSCP::EventManager;
36
- use iMSCP::Execute ' execute' ;
36
+ use iMSCP::Execute qw/ execute escapeShell / ;
37
37
use iMSCP::File;
38
38
use iMSCP::TemplateParser qw/ getBloc replaceBloc process / ;
39
39
use Scalar::Defer ' lazy' ;
@@ -146,11 +146,12 @@ sub uninstall
146
146
return $rs if $rs ;
147
147
}
148
148
149
+ local $@ ;
149
150
eval {
150
151
local $self -> {' dbh' }-> {' RaiseError' } = TRUE;
151
152
152
153
$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' ] }` "
154
155
);
155
156
156
157
my ( $controlUser ) = @{ $self -> {' dbh' }-> selectcol_arrayref(
@@ -209,10 +210,10 @@ sub afterFrontEndBuildConfFile
209
210
" # SECTION custom END.\n " ,
210
211
" # SECTION custom BEGIN.\n "
211
212
. 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
+ )
216
217
. " include imscp_pma.conf;\n "
217
218
. " # SECTION custom END.\n " ,
218
219
${ $tplContent }
@@ -256,6 +257,7 @@ sub _buildConfigFiles
256
257
{
257
258
my ( $self ) = @_ ;
258
259
260
+ local $@ ;
259
261
my $rs = eval {
260
262
# Main configuration file
261
263
local $self -> {' dbh' }-> {' RaiseError' } = TRUE;
@@ -274,7 +276,9 @@ sub _buildConfigFiles
274
276
) || ' pma_' . randomStr( 12, iMSCP::Crypt::ALPHA64 ) );
275
277
276
278
( $config {' PMA_CONTROL_USER_PASSWD' } = decryptRijndaelCBC(
277
- $: :imscpDBKey, $: :imscpDBiv, $config {' PMA_CONTROL_USER_PASSWD' } // ' '
279
+ $: :imscpDBKey,
280
+ $: :imscpDBiv,
281
+ $config {' PMA_CONTROL_USER_PASSWD' } // ' '
278
282
) || randomStr( 16, iMSCP::Crypt::ALPHA64 ) );
279
283
280
284
(
@@ -403,12 +407,10 @@ sub _setupDatabase
403
407
404
408
my $database = ::setupGetQuestion( ' DATABASE_NAME' ) . ' _pma' ;
405
409
410
+ local $@ ;
406
411
eval {
407
412
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 `" );
412
414
};
413
415
if ( $@ ) {
414
416
error( $@ );
@@ -428,7 +430,7 @@ sub _setupDatabase
428
430
$schemaFile -> close ();
429
431
430
432
my $rs = execute(
431
- " /usr/bin/mysql < $schemaFile " ,
433
+ ' /usr/bin/mysql < ' . escapeShell( $schemaFile ) ,
432
434
\my $stdout ,
433
435
\my $stderr
434
436
);
@@ -449,98 +451,98 @@ sub _setupSqlUser
449
451
{
450
452
my ( $self ) = @_ ;
451
453
454
+ local $@ ;
452
455
eval {
453
456
my $database = ::setupGetQuestion( ' DATABASE_NAME' ) . ' _pma' ;
454
- my $dbUserHost = ::setupGetQuestion( ' DATABASE_USER_HOST' );
457
+ my $databaseUserHost = ::setupGetQuestion( ' DATABASE_USER_HOST' );
455
458
my $sqlServer = Servers::sqld-> factory();
456
459
457
460
for my $host (
458
461
$: :imscpOldConfig{' DATABASE_USER_HOST' },
459
- $dbUserHost
462
+ $databaseUserHost
460
463
) {
461
464
next unless length $host ;
462
465
$sqlServer -> dropUser( $self -> {' _pma_control_user' }, $host );
463
466
}
464
467
465
468
$sqlServer -> createUser(
466
469
$self -> {' _pma_control_user' },
467
- $dbUserHost ,
470
+ $databaseUserHost ,
468
471
$self -> {' _pma_control_user_passwd' }
469
472
);
470
473
471
474
local $self -> {' dbh' }-> {' RaiseError' } = TRUE;
472
475
473
476
$self -> {' dbh' }-> do(
474
- ' GRANT USAGE ON mysql.* TO ?@?' ,
477
+ ' GRANT USAGE ON ` mysql` .* TO ?@?' ,
475
478
undef ,
476
479
$self -> {' _pma_control_user' },
477
- $dbUserHost
480
+ $databaseUserHost
478
481
);
479
482
$self -> {' dbh' }-> do(
480
483
'
481
484
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 ?@?
489
493
' ,
490
- undef , $self -> {' _pma_control_user' }, $dbUserHost
494
+ undef ,
495
+ $self -> {' _pma_control_user' },
496
+ $databaseUserHost
491
497
);
492
498
493
499
$self -> {' dbh' }-> do(
494
- ' GRANT SELECT ON mysql.db TO ?@?' ,
500
+ ' GRANT SELECT ON ` mysql`.`db` TO ?@?' ,
495
501
undef ,
496
502
$self -> {' _pma_control_user' },
497
- $dbUserHost
503
+ $databaseUserHost
498
504
);
499
505
500
506
# Check for mysql.host table existence (as for MySQL >= 5.6.7, the
501
507
# mysql.host table is no longer provided)
502
508
if ( $self -> {' dbh' }-> selectrow_hashref(
503
- " SHOW tables FROM mysql LIKE 'host'"
509
+ " SHOW tables FROM ` mysql` LIKE 'host'"
504
510
) ) {
505
511
$self -> {' dbh' }-> do(
506
- ' GRANT SELECT ON mysql. host TO ?@?' ,
512
+ ' GRANT SELECT ON ` mysql`.` host` TO ?@?' ,
507
513
undef ,
508
514
$self -> {' _pma_control_user' },
509
- $dbUserHost
515
+ $databaseUserHost
510
516
);
511
517
}
512
518
513
519
$self -> {' dbh' }-> do(
514
- ' GRANT SELECT ON mysql. user TO ?@?' ,
520
+ ' GRANT SELECT ON ` mysql`.` user` TO ?@?' ,
515
521
undef ,
516
522
$self -> {' _pma_control_user' },
517
- $dbUserHost
523
+ $databaseUserHost
518
524
);
519
525
$self -> {' dbh' }-> do(
520
526
'
521
527
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`
524
530
TO?@?
525
531
' ,
526
532
undef ,
527
533
$self -> {' _pma_control_user' },
528
- $dbUserHost
534
+ $databaseUserHost
529
535
);
530
536
531
537
$self -> {' dbh' }-> do(
532
538
"
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 ] }`.*
539
541
TO ?\@ ?
540
542
" ,
541
543
undef ,
542
544
$self -> {' _pma_control_user' },
543
- $dbUserHost
545
+ $databaseUserHost
544
546
);
545
547
};
546
548
if ( $@ ) {
0 commit comments