mirror of
https://github.com/securego/gosec.git
synced 2024-12-25 03:55:54 +00:00
Do not flag the unhandled errors which are explicitly ignored
fixes #270
This commit is contained in:
parent
12400f9a1c
commit
14ed63d558
2 changed files with 2 additions and 14 deletions
|
@ -51,18 +51,6 @@ func returnsError(callExpr *ast.CallExpr, ctx *gosec.Context) int {
|
|||
|
||||
func (r *noErrorCheck) Match(n ast.Node, ctx *gosec.Context) (*gosec.Issue, error) {
|
||||
switch stmt := n.(type) {
|
||||
case *ast.AssignStmt:
|
||||
for _, expr := range stmt.Rhs {
|
||||
if callExpr, ok := expr.(*ast.CallExpr); ok && r.whitelist.ContainsCallExpr(expr, ctx, false) == nil {
|
||||
pos := returnsError(callExpr, ctx)
|
||||
if pos < 0 || pos >= len(stmt.Lhs) {
|
||||
return nil, nil
|
||||
}
|
||||
if id, ok := stmt.Lhs[pos].(*ast.Ident); ok && id.Name == "_" {
|
||||
return gosec.NewIssue(ctx, n, r.ID(), r.What, r.Severity, r.Confidence), nil
|
||||
}
|
||||
}
|
||||
}
|
||||
case *ast.ExprStmt:
|
||||
if callExpr, ok := stmt.X.(*ast.CallExpr); ok && r.whitelist.ContainsCallExpr(stmt.X, ctx, false) == nil {
|
||||
pos := returnsError(callExpr, ctx)
|
||||
|
|
|
@ -184,7 +184,7 @@ func test() (int,error) {
|
|||
func main() {
|
||||
v, _ := test()
|
||||
fmt.Println(v)
|
||||
}`}, 1}, {[]string{`
|
||||
}`}, 0}, {[]string{`
|
||||
package main
|
||||
import (
|
||||
"io/ioutil"
|
||||
|
@ -206,7 +206,7 @@ func main() {
|
|||
a()
|
||||
b()
|
||||
c()
|
||||
}`}, 3}, {[]string{`
|
||||
}`}, 2}, {[]string{`
|
||||
package main
|
||||
import "fmt"
|
||||
func test() error {
|
||||
|
|
Loading…
Reference in a new issue