diff options
author | Giteabot <teabot@gitea.io> | 2024-01-06 20:05:49 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-06 20:05:49 +0800 |
commit | 7f833d8f71b71b0e983ed979c5ad8088aec7fb7d (patch) | |
tree | f5eeb6b487b9f09c34599df9cd33e417ef2f9914 | |
parent | e67c819cf463695db0d0693a1844f9c9fcd02c58 (diff) | |
download | gitea-7f833d8f71b71b0e983ed979c5ad8088aec7fb7d.tar.gz gitea-7f833d8f71b71b0e983ed979c5ad8088aec7fb7d.zip |
Fix panic when parsing empty pgsql host (#28708) (#28709)
Backport #28708 by wxiaoguang
Regression of #27723
Fix #28705
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
-rw-r--r-- | modules/setting/database.go | 2 | ||||
-rw-r--r-- | modules/setting/database_test.go | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/modules/setting/database.go b/modules/setting/database.go index b68f250f78..015c918d93 100644 --- a/modules/setting/database.go +++ b/modules/setting/database.go @@ -168,7 +168,7 @@ func getPostgreSQLConnectionString(dbHost, dbUser, dbPasswd, dbName, dbsslMode s RawQuery: dbParam, } query := connURL.Query() - if dbHost[0] == '/' { // looks like a unix socket + if strings.HasPrefix(dbHost, "/") { // looks like a unix socket query.Add("host", dbHost) connURL.Host = ":" + port } diff --git a/modules/setting/database_test.go b/modules/setting/database_test.go index 1d5b416504..14e0a6ac02 100644 --- a/modules/setting/database_test.go +++ b/modules/setting/database_test.go @@ -66,6 +66,10 @@ func Test_getPostgreSQLConnectionString(t *testing.T) { Output string }{ { + Host: "", // empty means default + Output: "postgres://:@127.0.0.1:5432?sslmode=", + }, + { Host: "/tmp/pg.sock", User: "testuser", Passwd: "space space !#$%^^%^```-=?=", |