2
0

Fix parseDSNSettings with bad backslash

fixes #49
This commit is contained in:
Jack Christensen
2020-09-10 19:40:46 -05:00
parent b6b3a86310
commit be69c1c10b
2 changed files with 10 additions and 0 deletions
+3
View File
@@ -506,6 +506,9 @@ func parseDSNSettings(s string) (map[string]string, error) {
}
if s[end] == '\\' {
end++
if end == len(s) {
return nil, errors.New("invalid backslash")
}
}
}
val = strings.Replace(strings.Replace(s[:end], "\\\\", "\\", -1), "\\'", "'", -1)
+7
View File
@@ -539,6 +539,13 @@ func TestParseConfigDSNLeadingEqual(t *testing.T) {
require.Error(t, err)
}
// https://github.com/jackc/pgconn/issues/49
func TestParseConfigDSNTrailingBackslash(t *testing.T) {
_, err := pgconn.ParseConfig(`x=x\`)
require.Error(t, err)
assert.Contains(t, err.Error(), "invalid backslash")
}
func TestConfigCopyReturnsEqualConfig(t *testing.T) {
connString := "postgres://jack:secret@localhost:5432/mydb?application_name=pgxtest&search_path=myschema&connect_timeout=5"
original, err := pgconn.ParseConfig(connString)