X Tutup
Skip to content

Commit 19da2be

Browse files
committed
Set STRICT_ALL_TABLES when setting up DB (letsencrypt#1890)
Fixes letsencrypt#1202.
1 parent 1336c42 commit 19da2be

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

sa/database.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,10 @@ func NewDbMapFromConfig(config *mysql.Config, maxOpenConns int) (*gorp.DbMap, er
6666
dbmap := &gorp.DbMap{Db: db, Dialect: dialect, TypeConverter: BoulderTypeConverter{}}
6767

6868
initTables(dbmap)
69+
_, err = dbmap.Exec("SET sql_mode = 'STRICT_ALL_TABLES';")
70+
if err != nil {
71+
return nil, err
72+
}
6973

7074
return dbmap, err
7175
}

sa/database_test.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@ package sa
33
import (
44
"database/sql"
55
"errors"
6+
"strings"
67
"testing"
78

89
"github.com/letsencrypt/boulder/test"
10+
"github.com/letsencrypt/boulder/test/vars"
911
)
1012

1113
func TestInvalidDSN(t *testing.T) {
@@ -58,3 +60,16 @@ func TestNewDbMap(t *testing.T) {
5860
}
5961

6062
}
63+
64+
func TestStrictness(t *testing.T) {
65+
dbMap, err := NewDbMap(vars.DBConnSA, 1)
66+
_, err = dbMap.Exec(`insert into authz set
67+
id="hi", identifier="foo", status="pending", combinations="combos",
68+
registrationID=999999999999999999999999999;`)
69+
if err == nil {
70+
t.Fatal("Expected error when providing out of range value, got none.")
71+
}
72+
if !strings.Contains(err.Error(), "Out of range value for column") {
73+
t.Fatalf("Got wrong type of error: %s", err)
74+
}
75+
}

0 commit comments

Comments
 (0)
X Tutup