mirror of
https://github.com/securego/gosec.git
synced 2025-07-03 00:27:05 +02:00
Improve the SQL strings concat rules to handle multiple string concatenation
Signed-off-by: Cosmin Cojocar <cosmin.cojocar@gmx.ch>
This commit is contained in:
committed by
Cosmin Cojocar
parent
68bce94323
commit
30e93bf865
21
helpers.go
21
helpers.go
@ -226,6 +226,27 @@ func GetIdentStringValues(ident *ast.Ident) []string {
|
||||
return values
|
||||
}
|
||||
|
||||
// GetBinaryExprOperands returns all operands of a binary expression by traversing
|
||||
// the expression tree
|
||||
func GetBinaryExprOperands(be *ast.BinaryExpr) []ast.Node {
|
||||
var traverse func(be *ast.BinaryExpr)
|
||||
result := []ast.Node{}
|
||||
traverse = func(be *ast.BinaryExpr) {
|
||||
if lhs, ok := be.X.(*ast.BinaryExpr); ok {
|
||||
traverse(lhs)
|
||||
} else {
|
||||
result = append(result, be.X)
|
||||
}
|
||||
if rhs, ok := be.Y.(*ast.BinaryExpr); ok {
|
||||
traverse(rhs)
|
||||
} else {
|
||||
result = append(result, be.Y)
|
||||
}
|
||||
}
|
||||
traverse(be)
|
||||
return result
|
||||
}
|
||||
|
||||
// GetImportedName returns the name used for the package within the
|
||||
// code. It will resolve aliases and ignores initialization only imports.
|
||||
func GetImportedName(path string, ctx *Context) (string, bool) {
|
||||
|
Reference in New Issue
Block a user