github-vet / github-vet/rangeloop-pointer-findings
runningwild/skein: hash/hasher/tree.go; 8 LoC
- Dominant language
- No language data
- Stars
- 0
- Forks
- 0
- PR merge metrics
- PR metrics pending
Description
Found a possible issue in [runningwild/skein](https://www.github.com/runningwild/skein) at [hash/hasher/tree.go](https://github.com/runningwild/skein/blob/82b66e2657a7ae7e0d5d2c9bc0102dfd0733b9ac/hash/hasher/tree.go#L123-L130)
Below is the message reported by the analyzer for this snippet of code. Beware that the analyzer only reports the first issue it finds, so please do not limit your consideration to the contents of the below message.
> range-loop variable i used in defer or goroutine at line 127
[Click here to see the code in its original context.](https://github.com/runningwild/skein/blob/82b66e2657a7ae7e0d5d2c9bc0102dfd0733b9ac/hash/hasher/tree.go#L123-L130)
Click here to show the 8 line(s) of Go which triggered the analyzer.
```go
for i := range blocks {
wg.Add(1)
go func(index int, tweak [2]uint64) {
defer wg.Done()
outputs[index] = h.ubi.UBI(h.gn, blocks[i], tweak)
}(i, low.tweak)
low.tweak[0] += uint64(low.size)
}
```
Leave a reaction on this issue to contribute to the project by classifying this instance as a **Bug** :-1:, **Mitigated** :+1:, or **Desirable Behavior** :rocket:
See the descriptions of the classifications [here](https://github.com/github-vet/rangeclosure-findings#how-can-i-help) for more information.
commit ID: 82b66e2657a7ae7e0d5d2c9bc0102dfd0733b9ac
Contributor guide
No contributing guide indexed for this repository
Research direction
Start in hash/hasher/tree.go at lines 123-130 and inspect how the goroutine uses the range variable i after receiving index. Confirm the analyzer warning in the surrounding tree hashing code; done means each goroutine processes the intended block for its index without range-variable capture, with existing repository checks passing.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- cryptography
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 45/100