From 2d59657996393856424896903ca85e6b81d9e43d Mon Sep 17 00:00:00 2001 From: Klaus Post Date: Sat, 7 Oct 2023 06:52:39 -0700 Subject: [PATCH] test: Set FSE decompress fuzzer max limit (#868) * test: Set FSE decompress fuzzer max limit Avoids timeout on large output. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=63059 * Add to CI & Add more baseline --- .github/workflows/go.yml | 7 ++++++- fse/fuzz_test.go | 4 +++- fse/testdata/fse_decompress.zip | Bin 1864 -> 22792 bytes 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index f00c06aea8..96b1c8681f 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -147,7 +147,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v2 with: - go-version: 1.20.x + go-version: 1.21.x - name: Checkout code uses: actions/checkout@v2 @@ -201,3 +201,8 @@ jobs: - name: zip/FuzzReader run: go test -run=none -fuzz=FuzzReader -fuzztime=500000x -test.fuzzminimizetime=10ms ./zip/. + - name: fse/FuzzCompress + run: go test -run=none -fuzz=FuzzCompress -fuzztime=1000000x -test.fuzzminimizetime=10ms ./fse/. + + - name: fse/FuzzDecompress + run: go test -run=none -fuzz=FuzzDecompress -fuzztime=1000000x -test.fuzzminimizetime=10ms ./fse/. \ No newline at end of file diff --git a/fse/fuzz_test.go b/fse/fuzz_test.go index 64b670ee9a..6221d7e55b 100644 --- a/fse/fuzz_test.go +++ b/fse/fuzz_test.go @@ -32,9 +32,11 @@ func FuzzCompress(f *testing.F) { } func FuzzDecompress(f *testing.F) { - fuzz.AddFromZip(f, "testdata/fse_decompress.zip", fuzz.TypeRaw, false) + // Input is mixed, but TypeGoFuzz will fall back to raw input. + fuzz.AddFromZip(f, "testdata/fse_decompress.zip", fuzz.TypeGoFuzz, false) f.Fuzz(func(t *testing.T, buf0 []byte) { var s2 Scratch + s2.DecompressLimit = 128 << 10 //Decompress got, err := Decompress(buf0, &s2) if err != nil || len(got) == 0 { diff --git a/fse/testdata/fse_decompress.zip b/fse/testdata/fse_decompress.zip index 7d59ed2e1ca57603b156dc93e7ba1c16891cbaa8..1c97a7816a7de1720bf7038eac4784488c98c546 100644 GIT binary patch literal 22792 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 literal 1864 zcmWIWW@Zs#-~hssT$6AHD3AowTnq{f$wi69876v3nR%fhybSDj&v2zmp65zU%HvHf zt>9*0WckX-zyQ?G!0`L)|Ns9#zyH6OF>+riLx49shh6XSU_PJ>$gBXYwrC;SVv1r5 z$ObI7upT_fctC;Y$cCwpl-u6y_xS#TeaZhg(Fr<_X3pW_Irl1S_95B*>>%4i>}?s< zfaZhjz-~J?P=*ia$CT7$U9dmRP+Wk+pOcd+J_3DO|Np3@1lXHJTOJ4wDEBP<+H$pp6G#pd~PY(OJG#$dOAAI$%{3LAG1#A^%nJzW??N zPYr{PrZF#ATQ6s1p_3+{o}r}Cd#Y*DlLHM5KY8yMY&*dm*~ordR>Fs`Hsi*_3o8qJ z4;(ALB(vBV8a$@;592QjMD2dg>3m@x`~O1KjE`;g2AWs?Fr8ufze2Qnae_!sQ=kEt z+d+*3+$}Bp__hcGnG&qcGN8a?=a66LaONE_AVEPE;LXS+!i*?dkc$IQ(EzlV007w8(uM#4