mirror of
https://github.com/golang/go
synced 2024-10-04 23:20:17 +00:00
internal/fuzz: compute correct number of mutations
When reconstructing inputs, we miscalculated the number of mutations that needed to be applied. If the count%chainedMutation == 0 we would apply 0 mutations, when we should actually be applying chainedMutation mutations, due to how count is incremented. Fixes #49047 Change-Id: I76773bff0afd6dfd40deafc317be095da995ecc5 Reviewed-on: https://go-review.googlesource.com/c/go/+/365294 Trust: Roland Shoemaker <roland@golang.org> Trust: Katie Hockman <katie@golang.org> Run-TryBot: Roland Shoemaker <roland@golang.org> Run-TryBot: Katie Hockman <katie@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com> Reviewed-by: Katie Hockman <katie@golang.org> TryBot-Result: Go Bot <gobot@golang.org>
This commit is contained in:
parent
e8cda0a6c9
commit
a94409660d
|
@ -1,5 +1,3 @@
|
|||
skip # https://golang.org/issue/49047
|
||||
|
||||
# TODO(jayconrod): support shared memory on more platforms.
|
||||
[!darwin] [!linux] [!windows] skip
|
||||
|
||||
|
|
|
@ -1111,7 +1111,8 @@ func (wc *workerClient) fuzz(ctx context.Context, entryIn CorpusEntry, args fuzz
|
|||
wc.m.r.restore(mem.header().randState, mem.header().randInc)
|
||||
if !args.Warmup {
|
||||
// Only mutate the valuesOut if fuzzing actually occurred.
|
||||
for i := int64(0); i < resp.Count%chainedMutations; i++ {
|
||||
numMutations := ((resp.Count - 1) % chainedMutations) + 1
|
||||
for i := int64(0); i < numMutations; i++ {
|
||||
wc.m.mutate(valuesOut, cap(mem.valueRef()))
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue