tests/fuzzers: fix false positive in bitutil fuzzer (#22076)

This commit is contained in:
Martin Holst Swende 2020-12-27 21:58:39 +01:00 committed by GitHub
parent 9c6b5b904a
commit b13e9c4e3d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 13 additions and 1 deletions

View File

@ -51,7 +51,19 @@ func fuzzDecode(data []byte) int {
if err != nil {
return 0
}
if comp := bitutil.CompressBytes(blob); !bytes.Equal(comp, data) {
// re-compress it (it's OK if the re-compressed differs from the
// original - the first input may not have been compressed at all)
comp := bitutil.CompressBytes(blob)
if len(comp) > len(blob) {
// After compression, it must be smaller or equal
panic("bad compression")
}
// But decompressing it once again should work
decomp, err := bitutil.DecompressBytes(data, 1024)
if err != nil {
panic(err)
}
if !bytes.Equal(decomp, blob) {
panic("content mismatch")
}
return 1