1
0
Fork 0

Fix potential panic during request parsing

master
Philip O'Toole 4 years ago
parent 6bf184661e
commit 1a3d46994d

@ -49,7 +49,11 @@ func ParseRequest(b []byte) ([]store.Statement, error) {
return nil, ErrNoStatements
}
stmts[i].SQL = parameterized[i][0].(string)
var ok bool
stmts[i].SQL, ok = parameterized[i][0].(string)
if !ok {
return nil, ErrInvalidRequest
}
if len(parameterized[i]) == 1 {
continue
}

@ -206,3 +206,20 @@ func Test_MixedInvalidRequest(t *testing.T) {
t.Fatal("got unexpected error for invalid request")
}
}
func Test_SingleInvalidTypeRequests(t *testing.T) {
_, err := ParseRequest([]byte(fmt.Sprintf(`[1]`)))
if err != ErrInvalidRequest {
t.Fatal("got unexpected error for invalid request")
}
_, err = ParseRequest([]byte(fmt.Sprintf(`[[1]]`)))
if err != ErrInvalidRequest {
t.Fatal("got unexpected error for invalid request")
}
_, err = ParseRequest([]byte(fmt.Sprintf(`[[1, "x", 2]]`)))
if err != ErrInvalidRequest {
t.Fatal("got unexpected error for invalid request")
}
}

Loading…
Cancel
Save