From 7e2d8d35f4da510fd97e23832e27cadf778a8491 Mon Sep 17 00:00:00 2001 From: Cosmin Cojocar Date: Fri, 13 Oct 2023 09:41:35 +0200 Subject: [PATCH] Handle empty ssa results Signed-off-by: Cosmin Cojocar --- analyzer.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/analyzer.go b/analyzer.go index 4078b94..8aac446 100644 --- a/analyzer.go +++ b/analyzer.go @@ -321,7 +321,7 @@ func (gosec *Analyzer) CheckRules(pkg *packages.Package) { // CheckAnalyzers runs analyzers on a given package. func (gosec *Analyzer) CheckAnalyzers(pkg *packages.Package) { ssaResult, err := gosec.buildSSA(pkg) - if err != nil { + if err != nil || ssaResult == nil { gosec.logger.Printf("Error building the SSA representation of the package %q: %s", pkg.Name, err) return } @@ -370,8 +370,8 @@ func (gosec *Analyzer) CheckAnalyzers(pkg *packages.Package) { // buildSSA runs the SSA pass which builds the SSA representation of the package. It handles gracefully any panic. func (gosec *Analyzer) buildSSA(pkg *packages.Package) (interface{}, error) { defer func() { - if r := recover(); r != nil { - gosec.logger.Printf("Panic when running SSA analyser on package %q: %s", pkg.Name, r) + if r := recover(); r = nil { + gosec.logger.Printf("Panic when running SSA analyser on package: %s", pkg.Name) } }() ssaPass := &analysis.Pass{