]> source.dussan.org Git - gitea.git/commitdiff
Fix nil checking on typed interface (#17598)
authorGusted <williamzijl7@hotmail.com>
Mon, 15 Nov 2021 13:16:11 +0000 (13:16 +0000)
committerGitHub <noreply@github.com>
Mon, 15 Nov 2021 13:16:11 +0000 (21:16 +0800)
* 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>
modules/indexer/code/bleve.go
modules/indexer/code/elastic_search.go
modules/indexer/code/indexer.go
routers/web/base.go

index 8e5df34e60be7ddbb7a3713fb6ba04828664a550..66b2602d3bf2efdec29a63a3fc9428566e983fbf 100644 (file)
@@ -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
 }
 
index 49633c31916dfae8470b1b5908dfdcbcb73c91fd..f76f316f6494f277a43e8bb436ad5d0a52688060 100644 (file)
@@ -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
 }
 
index 981167a8254a5a7b38634f755860b293e2a2fe5b..c56b1b2bb0c5d8a01f926d2466b17338f3319d34 100644 (file)
@@ -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)
index 16d3192da21dc3f6afbe448c20e913812758bbc8..98713bc8818f645d218cf457f17ec3a818aea9d8 100644 (file)
@@ -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{