bd4b4b8f66
* test: don't use loop vars in goroutines fixes a data race in the test * test: copy objects in statestore before mutating fixes data race in test * test: @lgfa29's segmgrep rule for loops/goroutines Found 2 places where we were improperly using loop variables inside goroutines.
29 lines
586 B
YAML
29 lines
586 B
YAML
rules:
|
|
- id: loopclosure
|
|
patterns:
|
|
- pattern-inside: |
|
|
for $A, $B := range $C {
|
|
...
|
|
}
|
|
- pattern-inside: |
|
|
go func() {
|
|
...
|
|
}()
|
|
- pattern-not-inside: |
|
|
go func(..., $B, ...) {
|
|
...
|
|
}(..., $B, ...)
|
|
- pattern-not-inside: |
|
|
go func() {
|
|
...
|
|
for ... {
|
|
...
|
|
}
|
|
...
|
|
}()
|
|
- pattern: $B
|
|
message: Loop variable $B used inside goroutine
|
|
languages:
|
|
- go
|
|
severity: WARNING
|