diff options
| author | Space Meyer <meyerpatrick@google.com> | 2022-08-12 14:32:53 +0000 |
|---|---|---|
| committer | Aleksandr Nogikh <wp32pw@gmail.com> | 2022-09-01 10:42:40 +0200 |
| commit | d9393412ccc24ce82dcd6ab8916c966615150edd (patch) | |
| tree | 62ac522ffe6a06f4932ae07b9c6b9bfe737bb1e2 /vendor/github.com/sourcegraph | |
| parent | b01ec5715e2ae72463124fd42608bcee9b8132b8 (diff) | |
pkg/bisect: prevent crash in bisection after failed repo HEAD query
During a bisection the call stack looks like this:
Starting at env.bisect() in pkg/bisect/bisect.go
bisect() -> Bisect() -> pred() -> test() -> build()
Previously the `results[testRes1.com.Hash]` in pred() could run into a
nil pointer deref and crash, when:
* build() didn't bother to return current in certain error conditions
* test() didn't handle cases where build() couldn't query current
When test() returns an error, the bisection it was called from is
aborted. Hence test() is expected to not simply bubble up recoverable
errors, but instead return a testResult with verdict=vcs.BisectSkip.
I ran into this with a linux branch, where syzkaller could not find any
release tags, running into one of the cases where build() did not return
current, even though it was able to obtain it.
Diffstat (limited to 'vendor/github.com/sourcegraph')
0 files changed, 0 insertions, 0 deletions
