Skip to content

Commit 49afea4

Browse files
committed
Don't pass params to SQL statements using fmt.Sprintf()
1 parent 4e593fd commit 49afea4

File tree

3 files changed

+10
-6
lines changed

3 files changed

+10
-6
lines changed

database/firebird/firebird.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,13 +138,16 @@ func (f *Firebird) SetVersion(version int, dirty bool) error {
138138
return nil
139139
}
140140

141+
// TODO: parameterize this SQL statement
142+
// https://firebirdsql.org/refdocs/langrefupd20-execblock.html
143+
// VALUES (?, ?) doesn't work
141144
query := fmt.Sprintf(`EXECUTE BLOCK AS BEGIN
142145
DELETE FROM "%v";
143146
INSERT INTO "%v" (version, dirty) VALUES (%v, %v);
144147
END;`,
145148
f.config.MigrationsTable, f.config.MigrationsTable, version, btoi(dirty))
146149

147-
if _, err := f.conn.ExecContext(context.Background(), query, version, btoi(dirty)); err != nil {
150+
if _, err := f.conn.ExecContext(context.Background(), query); err != nil {
148151
return &database.Error{OrigErr: err, Query: []byte(query)}
149152
}
150153

database/ql/ql.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ func (m *Ql) ensureVersionTable() (err error) {
8585
return err
8686
}
8787
if _, err := tx.Exec(fmt.Sprintf(`
88-
CREATE TABLE IF NOT EXISTS %s (version uint64,dirty bool);
88+
CREATE TABLE IF NOT EXISTS %s (version uint64, dirty bool);
8989
CREATE UNIQUE INDEX IF NOT EXISTS version_unique ON %s (version);
9090
`, m.config.MigrationsTable, m.config.MigrationsTable)); err != nil {
9191
if err := tx.Rollback(); err != nil {
@@ -211,8 +211,9 @@ func (m *Ql) SetVersion(version int, dirty bool) error {
211211
}
212212

213213
if version >= 0 {
214-
query := fmt.Sprintf(`INSERT INTO %s (version, dirty) VALUES (%d, %t)`, m.config.MigrationsTable, version, dirty)
215-
if _, err := tx.Exec(query); err != nil {
214+
query := fmt.Sprintf(`INSERT INTO %s (version, dirty) VALUES (uint64(?1), ?2)`,
215+
m.config.MigrationsTable)
216+
if _, err := tx.Exec(query, version, dirty); err != nil {
216217
if errRollback := tx.Rollback(); errRollback != nil {
217218
err = multierror.Append(err, errRollback)
218219
}

database/sqlite3/sqlite3.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -212,8 +212,8 @@ func (m *Sqlite) SetVersion(version int, dirty bool) error {
212212
}
213213

214214
if version >= 0 {
215-
query := fmt.Sprintf(`INSERT INTO %s (version, dirty) VALUES (%d, '%t')`, m.config.MigrationsTable, version, dirty)
216-
if _, err := tx.Exec(query); err != nil {
215+
query := fmt.Sprintf(`INSERT INTO %s (version, dirty) VALUES (?, ?)`, m.config.MigrationsTable)
216+
if _, err := tx.Exec(query, version, dirty); err != nil {
217217
if errRollback := tx.Rollback(); errRollback != nil {
218218
err = multierror.Append(err, errRollback)
219219
}

0 commit comments

Comments
 (0)