From dcb1116f1351bc8edad059d9ca432e8f322ba922 Mon Sep 17 00:00:00 2001 From: Randy Date: Thu, 26 Nov 2020 02:18:13 +0100 Subject: [PATCH] ossfuzz: improve code coverage fix .gif pattern matching add netpbm test images derived from the public domain pngsuite added more image types (downloaded in Dockerfile) --- tests/ossfuzz.sh | 8 ++++++-- tests/pbm/basi0g16.pgm | Bin 0 -> 2064 bytes tests/pbm/basi2c16.ppm | Bin 0 -> 6160 bytes tests/pbm/cdfn2c08.ppm | Bin 0 -> 826 bytes tests/pbm/cdun2c08.ppm | Bin 0 -> 3086 bytes tests/pbm/comment.pgm | Bin 0 -> 1083 bytes tests/pbm/ctfn0g04.pgm | Bin 0 -> 1038 bytes 7 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 tests/pbm/basi0g16.pgm create mode 100644 tests/pbm/basi2c16.ppm create mode 100644 tests/pbm/cdfn2c08.ppm create mode 100644 tests/pbm/cdun2c08.ppm create mode 100644 tests/pbm/comment.pgm create mode 100644 tests/pbm/ctfn0g04.pgm diff --git a/tests/ossfuzz.sh b/tests/ossfuzz.sh index 2af98f5..4b8fd27 100755 --- a/tests/ossfuzz.sh +++ b/tests/ossfuzz.sh @@ -17,9 +17,13 @@ cp $SRC/stb/tests/stb_png.dict $OUT/stb_png_read_fuzzer.dict tar xvzf $SRC/stb/jpg.tar.gz --directory $SRC/stb/tests tar xvzf $SRC/stb/gif.tar.gz --directory $SRC/stb/tests +unzip $SRC/stb/bmp.zip -d $SRC/stb/tests +unzip $SRC/stb/tga.zip -d $SRC/stb/tests -find $SRC/stb/tests -name "*.png" -o -name "*.jpg" -o -name ".gif" | \ - xargs zip $OUT/stbi_read_fuzzer_seed_corpus.zip +find $SRC/stb/tests -name "*.png" -o -name "*.jpg" -o -name "*.gif" \ + -o -name "*.bmp" -o -name "*.tga" -o -name "*.TGA" \ + -o -name "*.ppm" -o -name "*.pgm" \ + | xargs zip $OUT/stbi_read_fuzzer_seed_corpus.zip echo "" >> $SRC/stb/tests/gif.dict cat $SRC/stb/tests/gif.dict $SRC/stb/tests/stb_png.dict > $OUT/stbi_read_fuzzer.dict diff --git a/tests/pbm/basi0g16.pgm b/tests/pbm/basi0g16.pgm new file mode 100644 index 0000000000000000000000000000000000000000..72412431a9513fbced9f9bac62f912d2edf89aea GIT binary patch literal 2064 zcmWGA<>E3nQZP2+GBY(bHsxYq;A9YDkY-R}&}A@VuxIdK2xN$2NM^`kC}pT)XlIzf zFq2^s!)k^t40{=lF`Q?(!SImb6~kwSKMWuKU;V%9KNABtg9w8xgBpWAg9U>lgBL?E zLkvSILmoppLjyx6!z6~;3`-c+GHhem&v1g_BEv0)#|&>6zB2q{c=iAM|1JMn77`hpzFwA9G#;~4Y2g5;zQw*0G?l3%Mc*pRa z;s5_9|4;s3_n(b{pFx5_kwJ^Wn8Aj@mBEi8oFRcBlc9*AnxTcEmth*ie1;Va8yR*n z9A-GfaFyX6!*hlY3_lru{=fJC@c$M6IT!>Pq!^SLbQnw->=@h`0vIA0k{GfXN*HPx z+8Fv7W-u&dSjDiJVGqMmhI0(p86GgaWcbAJo8j~S8~^wIU-X}gL6|{?L6t#|!JNT? z!IL3~A(|nDA(x?yp`M|GVIspUhQ$nP7`8I(V>r%mf#D{@BZk)uUl{%}y#0Ua|MvfL z{_`-1GRQHgGZ-*fGB`1KGlVe2GNdu&GgL4%GITLaW|+gUlwlpic7_8CCmAj=+-7*f z@Rs2l!+(b7|Ihs2_TzC242!|BC;Vq@CXXMgJ*DJMI5-{!@~68vm#LrzGuE|4;Z&N!ls>AN8M- zw3GiorPfnc$OFPp48U6zR9K96L literal 0 HcmV?d00001 diff --git a/tests/pbm/basi2c16.ppm b/tests/pbm/basi2c16.ppm new file mode 100644 index 0000000000000000000000000000000000000000..f2913bb9e2ddc2a4a41dcf7db79cf6f6e1e4ff60 GIT binary patch literal 6160 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 literal 0 HcmV?d00001 diff --git a/tests/pbm/cdfn2c08.ppm b/tests/pbm/cdfn2c08.ppm new file mode 100644 index 0000000000000000000000000000000000000000..1a9e0f0a9766add367295fd6a0279a630440489e GIT binary patch literal 826 zcmWGA<5E^|E=o--Nlj5ms#I|I^bJrbOD!tS%+FIW(la#BGcr;L@bgtD$SF`sLV^tcLmB?NfY}fc2${z4zZ{H=k)#B{A`tOVBykrc@p6X$f-tEL zhX1P=?yh2Zw+h5S*z%6y?tg~z{|qz#GyMP0@V^7BUWwuVJBC$Y@$&y51^;J)#f?GY zkuP4pEOR z&aiv;JBC#qN_WxBVc5NUCd0c>C763$VD7xTN=fOzU?|A_Aba8N|38zV<3Gc0kT}#| zp$y<~NMpFWo8jGVL^y;poB@RoM!2~!+{X02wpA_#UZeq)hk(-{6M5p9bSAqOLyjLas+BQ6a8S7AqYS25gO#c&2pzQdsg6q0zt zT#4cTZifH=QP8{p46FV#bo^&1M@2LLGn_$H3DWouoD#5FAqb95RP$G%nu%sbIoRI2 z$hN!#hpjQTxCjMH!OVa6pJ65;!{OE;JOVMl93$xpf(ynDy6`yInfFk1DF;mkXzI4HF-2!ge&LNgy83&;t6Hz>7~L){OFaP?7?rm@^FjT_EO{{|C7Oltdw}g?bJgmJkte_&|~(*!?b`(0&It5J?pxv(Eg_ z@c#_M|8l|qf{?fdc?)h-IVAAF@dgvTyBnI$!RCWwbN7D+7m%aCVYCVyK)dfk$^(## zA?6!H%wL5Z{_rRO8v`<;oZ$?@d{~m|_%G-J3T1E{LX0VY$FLjZ`||$`yCLSgKqO|O znGY$HV2=NfVm>TZ%KsaK%)bkcLx?fu?-*u+d|&>bVHL#uP>4han)#3@#&3Sde41<8;)FlA}R-1DFlg3B=i6O2gNm{ zxWi@s%>SVB9O51j32{FpTS1(SOhO_P96lh$V8%PJEogOR2iSMeIt#1}s{S3gU59KY z8rzuRe+L67|IEZfzMIK#7n?XjJ*d<}3J^5IAzVD^1uglYaWUf*Vjxx$65VJf;Npft t$_qj+N3#gh3PmdYK$!{6iZnt2j%FrSt`gV~NE1C2T;I7sDlnoP3;>p6hvWbN literal 0 HcmV?d00001 diff --git a/tests/pbm/comment.pgm b/tests/pbm/comment.pgm new file mode 100644 index 0000000000000000000000000000000000000000..aa9dc71887f79ac4bd39c67cf3af312b332d3cea GIT binary patch literal 1083 zcmWGAE3nQZP2+GBP#g`i}&Rjg5_6TwGj2LqkK;($dn(%gf7=r2o@OUP(zw37gp+ z9UUDY`)Mr?vIE`UAiHPIoH-LD2g0