diff options
author | Gusted <williamzijl7@hotmail.com> | 2021-11-15 13:16:11 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-15 21:16:11 +0800 |
commit | ab1379743e812eb1430e4d15a00c3f7b9e759da6 (patch) | |
tree | 81dfccc630574b917035842431b4d0e7c938a100 | |
parent | 253d9e415813e90543cca8d94112c9e4238d39a4 (diff) | |
download | gitea-ab1379743e812eb1430e4d15a00c3f7b9e759da6.tar.gz gitea-ab1379743e812eb1430e4d15a00c3f7b9e759da6.zip |
Fix nil checking on typed interface (#17598)
* Fix nil checking on typed interface
- Partially resoles #17596
- Resolves SA4023 errors.
- Ensure correctly that typed interface are nil.
* Remove unnecessary code
`NewBleveIndexer` will never return nil, even on errors.
* Patch `NewBleveIndexer`
* Fix low-level functions
* Remove deadcode
* Fix GetSession
* Close Elastic search when err isn't nil
* Update elastic_search.go
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
-rw-r--r-- | modules/indexer/code/bleve.go | 4 | ||||
-rw-r--r-- | modules/indexer/code/elastic_search.go | 5 | ||||
-rw-r--r-- | modules/indexer/code/indexer.go | 6 | ||||
-rw-r--r-- | routers/web/base.go | 8 |
4 files changed, 8 insertions, 15 deletions
diff --git a/modules/indexer/code/bleve.go b/modules/indexer/code/bleve.go index 8e5df34e60..66b2602d3b 100644 --- a/modules/indexer/code/bleve.go +++ b/modules/indexer/code/bleve.go @@ -173,6 +173,10 @@ func NewBleveIndexer(indexDir string) (*BleveIndexer, bool, error) { indexDir: indexDir, } created, err := indexer.init() + if err != nil { + indexer.Close() + return nil, false, err + } return indexer, created, err } diff --git a/modules/indexer/code/elastic_search.go b/modules/indexer/code/elastic_search.go index 49633c3191..f76f316f64 100644 --- a/modules/indexer/code/elastic_search.go +++ b/modules/indexer/code/elastic_search.go @@ -82,7 +82,10 @@ func NewElasticSearchIndexer(url, indexerName string) (*ElasticSearchIndexer, bo indexerAliasName: indexerName, } exists, err := indexer.init() - + if err != nil { + indexer.Close() + return nil, false, err + } return indexer, !exists, err } diff --git a/modules/indexer/code/indexer.go b/modules/indexer/code/indexer.go index 981167a825..c56b1b2bb0 100644 --- a/modules/indexer/code/indexer.go +++ b/modules/indexer/code/indexer.go @@ -185,9 +185,6 @@ func Init() { rIndexer, populate, err = NewBleveIndexer(setting.Indexer.RepoPath) if err != nil { - if rIndexer != nil { - rIndexer.Close() - } cancel() indexer.Close() close(waitChannel) @@ -205,9 +202,6 @@ func Init() { rIndexer, populate, err = NewElasticSearchIndexer(setting.Indexer.RepoConnStr, setting.Indexer.RepoIndexerName) if err != nil { - if rIndexer != nil { - rIndexer.Close() - } cancel() indexer.Close() close(waitChannel) diff --git a/routers/web/base.go b/routers/web/base.go index 16d3192da2..98713bc881 100644 --- a/routers/web/base.go +++ b/routers/web/base.go @@ -130,14 +130,6 @@ func Recovery() func(next http.Handler) http.Handler { log.Error("%v", combinedErr) sessionStore := session.GetSession(req) - if sessionStore == nil { - if setting.IsProd { - http.Error(w, http.StatusText(500), 500) - } else { - http.Error(w, combinedErr, 500) - } - return - } var lc = middleware.Locale(w, req) var store = dataStore{ |