mirror of
https://github.com/securego/gosec.git
synced 2024-12-25 20:15: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) {
|
func (r *noErrorCheck) Match(n ast.Node, ctx *gosec.Context) (*gosec.Issue, error) {
|
||||||
switch stmt := n.(type) {
|
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:
|
case *ast.ExprStmt:
|
||||||
if callExpr, ok := stmt.X.(*ast.CallExpr); ok && r.whitelist.ContainsCallExpr(stmt.X, ctx, false) == nil {
|
if callExpr, ok := stmt.X.(*ast.CallExpr); ok && r.whitelist.ContainsCallExpr(stmt.X, ctx, false) == nil {
|
||||||
pos := returnsError(callExpr, ctx)
|
pos := returnsError(callExpr, ctx)
|
||||||
|
|
|
@ -184,7 +184,7 @@ func test() (int,error) {
|
||||||
func main() {
|
func main() {
|
||||||
v, _ := test()
|
v, _ := test()
|
||||||
fmt.Println(v)
|
fmt.Println(v)
|
||||||
}`}, 1}, {[]string{`
|
}`}, 0}, {[]string{`
|
||||||
package main
|
package main
|
||||||
import (
|
import (
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
@ -206,7 +206,7 @@ func main() {
|
||||||
a()
|
a()
|
||||||
b()
|
b()
|
||||||
c()
|
c()
|
||||||
}`}, 3}, {[]string{`
|
}`}, 2}, {[]string{`
|
||||||
package main
|
package main
|
||||||
import "fmt"
|
import "fmt"
|
||||||
func test() error {
|
func test() error {
|
||||||
|
|
Loading…
Reference in a new issue