From bf149cb3fa8460fb05b1ea64388cfbcaf2924454 Mon Sep 17 00:00:00 2001 From: Anthony Yeh Date: Fri, 2 Feb 2018 20:02:14 -0800 Subject: [PATCH] Backup: Escape DB name in checkNoDB(). --- go/vt/mysqlctl/backup.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/go/vt/mysqlctl/backup.go b/go/vt/mysqlctl/backup.go index b5828c22b4d..1e003c2eb6c 100644 --- a/go/vt/mysqlctl/backup.go +++ b/go/vt/mysqlctl/backup.go @@ -35,6 +35,7 @@ import ( "github.com/youtube/vitess/go/cgzip" "github.com/youtube/vitess/go/mysql" + "github.com/youtube/vitess/go/sqlescape" "github.com/youtube/vitess/go/sync2" "github.com/youtube/vitess/go/vt/concurrency" "github.com/youtube/vitess/go/vt/hook" @@ -539,9 +540,10 @@ func checkNoDB(ctx context.Context, mysqld MysqlDaemon, dbName string) (bool, er return false, fmt.Errorf("checkNoDB failed: %v", err) } + backtickDBName := sqlescape.EscapeID(dbName) for _, row := range qr.Rows { if row[0].ToString() == dbName { - tableQr, err := mysqld.FetchSuperQuery(ctx, "SHOW TABLES FROM "+dbName) + tableQr, err := mysqld.FetchSuperQuery(ctx, "SHOW TABLES FROM "+backtickDBName) if err != nil { return false, fmt.Errorf("checkNoDB failed: %v", err) }