From 51d9f7ff121a9dfb24b112f6c394e3baca3bc96a Mon Sep 17 00:00:00 2001 From: jflyfox Date: Tue, 29 Dec 2020 16:49:15 +0800 Subject: [PATCH] fix issue in configuration string parsing error when there're special chars(especially '?') in redis password --- database/gredis/gredis_config.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database/gredis/gredis_config.go b/database/gredis/gredis_config.go index 0902c8362..c8d658081 100644 --- a/database/gredis/gredis_config.go +++ b/database/gredis/gredis_config.go @@ -86,7 +86,7 @@ func RemoveConfig(name ...string) { // ConfigFromStr parses and returns config from given str. // Eg: host:port[,db,pass?maxIdle=x&maxActive=x&idleTimeout=x&maxConnLifetime=x] func ConfigFromStr(str string) (config Config, err error) { - array, _ := gregex.MatchString(`([^:]+):*(\d*),{0,1}(\d*),{0,1}(.*)\?(.+)`, str) + array, _ := gregex.MatchString(`([^:]+):*(\d*),{0,1}(\d*),{0,1}(.*)\?(.+?)`, str) if len(array) == 6 { parse, _ := gstr.Parse(array[5]) config = Config{