From 0370751537c141246c145f4eb5251163990a346d Mon Sep 17 00:00:00 2001 From: Enno Boland Date: Sun, 2 Jun 2024 12:28:22 +0200 Subject: [PATCH 1/3] .github: upload failing inputs from fuzzer runs --- .github/workflows/ci.yaml | 8 ++++++++ fuzzer/meson.build | 13 +++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index f27682fe..959d9510 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -84,6 +84,8 @@ jobs: runs-on: ubuntu-latest container: image: gottox/sqsh-build:x86_64 + volumes: + - /tmp/build:/tmp/build steps: - uses: actions/checkout@v4 - name: configure @@ -103,6 +105,12 @@ jobs: - name: fuzzer run: | ninja -C /tmp/build test + - name: Upload Failing Inputs + uses: actions/upload-artifact@v4 + if: failure() + with: + name: failing-inputs + path: /tmp/build/fuzzer/inputs build: needs: diff --git a/fuzzer/meson.build b/fuzzer/meson.build index 59333b86..4a63825d 100644 --- a/fuzzer/meson.build +++ b/fuzzer/meson.build @@ -31,17 +31,26 @@ fuzzer = executable( link_with: libsqsh.get_static_lib(), ) +rundir_tgt = custom_target( + 'fuzzer_inputs', + output: 'inputs', + command: [mkdir, '-p', '@OUTPUT@'], +) + test( 'simple_fuzzer', fuzzer, - depends: corpus_tgt, + workdir: rundir_tgt.full_path(), + is_parallel: false, + depends: [corpus_tgt, rundir_tgt], args: [ corpus_tgt.full_path(), source_corpus, '-error_exitcode=1', '-timeout_exitcode=1', - '-timeout=3', + '-timeout=10', '-rss_limit_mb=0', + '-malloc_limit_mb=10', '-max_total_time=@0@'.format(get_option('fuzzer_timeout')), ], timeout: 10 + get_option('fuzzer_timeout'), From 0bd1df5f1012436feba96bddadf7c222358272e4 Mon Sep 17 00:00:00 2001 From: Enno Boland Date: Sun, 2 Jun 2024 14:11:13 +0200 Subject: [PATCH 2/3] test: autogenerate tests from fuzzer inputs --- fuzzer/inputs/extract.fuzz_crash_1 | Bin 0 -> 198 bytes fuzzer/inputs/extract.fuzz_crash_10 | Bin 0 -> 192 bytes fuzzer/inputs/extract.fuzz_crash_11 | Bin 0 -> 271 bytes fuzzer/inputs/extract.fuzz_crash_12 | Bin 0 -> 1095 bytes fuzzer/inputs/extract.fuzz_crash_13 | Bin 0 -> 265 bytes fuzzer/inputs/extract.fuzz_crash_14 | Bin 0 -> 1384 bytes fuzzer/inputs/extract.fuzz_crash_15 | Bin 0 -> 843 bytes fuzzer/inputs/extract.fuzz_crash_16 | Bin 0 -> 395 bytes fuzzer/inputs/extract.fuzz_crash_17 | Bin 0 -> 1207 bytes fuzzer/inputs/extract.fuzz_crash_18 | Bin 0 -> 259 bytes fuzzer/inputs/extract.fuzz_crash_19 | Bin 0 -> 259 bytes fuzzer/inputs/extract.fuzz_crash_2 | Bin 0 -> 103 bytes fuzzer/inputs/extract.fuzz_crash_20 | Bin 0 -> 818 bytes fuzzer/inputs/extract.fuzz_crash_21 | Bin 0 -> 4096 bytes fuzzer/inputs/extract.fuzz_crash_3 | Bin 0 -> 116 bytes fuzzer/inputs/extract.fuzz_crash_4 | Bin 0 -> 241 bytes fuzzer/inputs/extract.fuzz_crash_5 | Bin 0 -> 241 bytes fuzzer/inputs/extract.fuzz_crash_6 | Bin 0 -> 96 bytes fuzzer/inputs/extract.fuzz_crash_7 | Bin 0 -> 96 bytes fuzzer/inputs/extract.fuzz_crash_8 | Bin 0 -> 97 bytes fuzzer/inputs/extract.fuzz_crash_9 | Bin 0 -> 744 bytes fuzzer/inputs/extract.fuzz_leak_1 | Bin 0 -> 432 bytes fuzzer/inputs/extract.fuzz_oom_1 | Bin 0 -> 269 bytes test/fuzzer/fuzz_crash_1 | Bin 0 -> 198 bytes test/fuzzer/fuzz_crash_10 | Bin 0 -> 192 bytes test/fuzzer/fuzz_crash_11 | Bin 0 -> 271 bytes test/fuzzer/fuzz_crash_12 | Bin 0 -> 1095 bytes test/fuzzer/fuzz_crash_13 | Bin 0 -> 265 bytes test/fuzzer/fuzz_crash_14 | Bin 0 -> 1384 bytes test/fuzzer/fuzz_crash_15 | Bin 0 -> 843 bytes test/fuzzer/fuzz_crash_16 | Bin 0 -> 395 bytes test/fuzzer/fuzz_crash_17 | Bin 0 -> 1207 bytes test/fuzzer/fuzz_crash_18 | Bin 0 -> 259 bytes test/fuzzer/fuzz_crash_19 | Bin 0 -> 259 bytes test/fuzzer/fuzz_crash_2 | Bin 0 -> 103 bytes test/fuzzer/fuzz_crash_20 | Bin 0 -> 818 bytes test/fuzzer/fuzz_crash_21 | Bin 0 -> 4096 bytes test/fuzzer/fuzz_crash_22 | Bin 0 -> 269 bytes test/fuzzer/fuzz_crash_3 | Bin 0 -> 116 bytes test/fuzzer/fuzz_crash_4 | Bin 0 -> 241 bytes test/fuzzer/fuzz_crash_5 | Bin 0 -> 241 bytes test/fuzzer/fuzz_crash_6 | Bin 0 -> 96 bytes test/fuzzer/fuzz_crash_7 | Bin 0 -> 96 bytes test/fuzzer/fuzz_crash_8 | Bin 0 -> 97 bytes test/fuzzer/fuzz_crash_9 | Bin 0 -> 744 bytes test/fuzzer/fuzz_leak_1 | Bin 0 -> 432 bytes test/fuzzer/meson.build | 59 ++ test/fuzzer/repro_codegen.c | 41 + test/libsqsh/archive/archive.c | 166 +++ test/libsqsh/fuzzer_repro.c | 1511 --------------------------- test/libsqsh/meson.build | 5 +- test/meson.build | 2 + 52 files changed, 269 insertions(+), 1515 deletions(-) create mode 100644 fuzzer/inputs/extract.fuzz_crash_1 create mode 100644 fuzzer/inputs/extract.fuzz_crash_10 create mode 100644 fuzzer/inputs/extract.fuzz_crash_11 create mode 100644 fuzzer/inputs/extract.fuzz_crash_12 create mode 100644 fuzzer/inputs/extract.fuzz_crash_13 create mode 100644 fuzzer/inputs/extract.fuzz_crash_14 create mode 100644 fuzzer/inputs/extract.fuzz_crash_15 create mode 100644 fuzzer/inputs/extract.fuzz_crash_16 create mode 100644 fuzzer/inputs/extract.fuzz_crash_17 create mode 100644 fuzzer/inputs/extract.fuzz_crash_18 create mode 100644 fuzzer/inputs/extract.fuzz_crash_19 create mode 100644 fuzzer/inputs/extract.fuzz_crash_2 create mode 100644 fuzzer/inputs/extract.fuzz_crash_20 create mode 100644 fuzzer/inputs/extract.fuzz_crash_21 create mode 100644 fuzzer/inputs/extract.fuzz_crash_3 create mode 100644 fuzzer/inputs/extract.fuzz_crash_4 create mode 100644 fuzzer/inputs/extract.fuzz_crash_5 create mode 100644 fuzzer/inputs/extract.fuzz_crash_6 create mode 100644 fuzzer/inputs/extract.fuzz_crash_7 create mode 100644 fuzzer/inputs/extract.fuzz_crash_8 create mode 100644 fuzzer/inputs/extract.fuzz_crash_9 create mode 100644 fuzzer/inputs/extract.fuzz_leak_1 create mode 100644 fuzzer/inputs/extract.fuzz_oom_1 create mode 100644 test/fuzzer/fuzz_crash_1 create mode 100644 test/fuzzer/fuzz_crash_10 create mode 100644 test/fuzzer/fuzz_crash_11 create mode 100644 test/fuzzer/fuzz_crash_12 create mode 100644 test/fuzzer/fuzz_crash_13 create mode 100644 test/fuzzer/fuzz_crash_14 create mode 100644 test/fuzzer/fuzz_crash_15 create mode 100644 test/fuzzer/fuzz_crash_16 create mode 100644 test/fuzzer/fuzz_crash_17 create mode 100644 test/fuzzer/fuzz_crash_18 create mode 100644 test/fuzzer/fuzz_crash_19 create mode 100644 test/fuzzer/fuzz_crash_2 create mode 100644 test/fuzzer/fuzz_crash_20 create mode 100644 test/fuzzer/fuzz_crash_21 create mode 100644 test/fuzzer/fuzz_crash_22 create mode 100644 test/fuzzer/fuzz_crash_3 create mode 100644 test/fuzzer/fuzz_crash_4 create mode 100644 test/fuzzer/fuzz_crash_5 create mode 100644 test/fuzzer/fuzz_crash_6 create mode 100644 test/fuzzer/fuzz_crash_7 create mode 100644 test/fuzzer/fuzz_crash_8 create mode 100644 test/fuzzer/fuzz_crash_9 create mode 100644 test/fuzzer/fuzz_leak_1 create mode 100644 test/fuzzer/meson.build create mode 100644 test/fuzzer/repro_codegen.c create mode 100644 test/libsqsh/archive/archive.c delete mode 100644 test/libsqsh/fuzzer_repro.c diff --git a/fuzzer/inputs/extract.fuzz_crash_1 b/fuzzer/inputs/extract.fuzz_crash_1 new file mode 100644 index 0000000000000000000000000000000000000000..2f98731b1fed715603c66a81b03c3ca6e8058c88 GIT binary patch literal 198 zcmc~OE-YqdU|^Uw9Y`PpJ4O%>D3!t}i&L7xC<(5|2+T@If&fN_q@@2~ULTHBNT-psx3`;=D m7{sCzQ;eYE3|oPW3~Cw%HJI`L|Nl(?|G)ju0keq#SqK3ALMEvI literal 0 HcmV?d00001 diff --git a/fuzzer/inputs/extract.fuzz_crash_11 b/fuzzer/inputs/extract.fuzz_crash_11 new file mode 100644 index 0000000000000000000000000000000000000000..a690736526cadd1e592d605742cd5442b5de945c GIT binary patch literal 271 zcmc~OE-YqZU|>*xo0!5Nz`(!=WHU1GFq~#&WMBcZ6@X$OzzmWAg5L}bAmvQ|p&%73 z%D}K3N?(T3Z=tlIk+BJvLjx1T5~u-CN(^WplnGVIz`zP*F*3Xb3xnJPvIqn~v@{Si egE%07t`Q;%B@K;$_KAz5h=KJGFqjEwJ}Ut3wj0F& literal 0 HcmV?d00001 diff --git a/fuzzer/inputs/extract.fuzz_crash_12 b/fuzzer/inputs/extract.fuzz_crash_12 new file mode 100644 index 0000000000000000000000000000000000000000..fe1f502900769334fbb2df976c2f9bbcd269713c GIT binary patch literal 1095 zcmc~OE-YqZU|>*xo0!5Nz`(!=WHU1GFq~#&WMBcZ6@VB7m_ZUi@Ebxg{D*>6D1SMW zzRUnJje+4Uly7KcY{KQxz{IcwY=9Wh8mLK71q=+VKo%pzTd*+584v>)zy?VJ<(Pq3 zq5()y1E5<@4KoM83`B54EQbZRrK!0oNx?k;ZXX_2;!H^Y2f%-@EJL!@RV3@ct^oj# C@ge#E literal 0 HcmV?d00001 diff --git a/fuzzer/inputs/extract.fuzz_crash_13 b/fuzzer/inputs/extract.fuzz_crash_13 new file mode 100644 index 0000000000000000000000000000000000000000..2b305c5120c660c009cc98d6abe272655ed2596b GIT binary patch literal 265 zcmc~OE-YqZU|>*xo0!5Nz`(!=WHU1GFq~#&WMBcZ6@VB7m_ZUi@Ebxg{D*>6D1SMW zz6_<`LTN)IV`DCd1}26jU<1T})&LnW-3$ysyIFxs85!P!_KbrcenN-Rh(PSy>6`!lOc2h)0)WW1}}=B z?uvkhl$*jtiYz|*s!0BGyI${&BB{W8MX|~#Qe3Zl-vF5T?ZqG^`i%d#eb|;<-&U3h wYZ*a;TOA!^J-N(q&b&OC_&1k!J~a#Z(I%WW-Tqh3|Kp_ddB)7>ZYi6+EB>a7z5oCK literal 0 HcmV?d00001 diff --git a/fuzzer/inputs/extract.fuzz_crash_15 b/fuzzer/inputs/extract.fuzz_crash_15 new file mode 100644 index 0000000000000000000000000000000000000000..01f0c36e34a3064e904813316611438c66efea55 GIT binary patch literal 843 zcmcgqI|{-;5PiEbRV=iTU}dG?DZEO+fUV>Ldl97aY#;u7K7MICc&4UdK`@np#&cx<%5NZOF( zrVw&z=+LSzHY&f5B5jS&O_6x~|x#lK7bxNS53v)ut!TK`{mE0bAynfVP^Q$T?L literal 0 HcmV?d00001 diff --git a/fuzzer/inputs/extract.fuzz_crash_16 b/fuzzer/inputs/extract.fuzz_crash_16 new file mode 100644 index 0000000000000000000000000000000000000000..28c175f64fd73e140f49a1d1d895ed327acab220 GIT binary patch literal 395 zcmZ`$I|@QE5S-*G2+zVw#L7zHox-aGd|)f@0y&J}2|R#>m8I7(y-`y`gleD%5EsIm#TFTz; X&%?~ex1(L^t1=YH4Rssf7fkR02`47F literal 0 HcmV?d00001 diff --git a/fuzzer/inputs/extract.fuzz_crash_17 b/fuzzer/inputs/extract.fuzz_crash_17 new file mode 100644 index 0000000000000000000000000000000000000000..4d69c8ade52dad783f7c398e41f6e45d8e0bd46e GIT binary patch literal 1207 zcmc~OE-YqZU{rsbn8Lsyz`(%B0Kz;Brx_U;Sb%H=AO-5sv|Dhli%wu3! z4y7-H3;}|-P`;6gnFW_a0~5&9B@7H=KzpDjDFVg7fE7qGGQ0%~gWSOd6=zar;9!uh z0@~e#13(o*C?um95Jq#M7!4B#(O{E-v_u2QD0DW=PA-N!4pe00{#D$cZ!n zY?PX*fXe`LToUvU|NjGFiy{*wbiv8xADE<+fEo@=6GE8j0w@`a5uq^W1j87}bUTQ{ aj4Xn|9&*u-;RAXK&?@>tevk$MAPoRq65T`q literal 0 HcmV?d00001 diff --git a/fuzzer/inputs/extract.fuzz_crash_18 b/fuzzer/inputs/extract.fuzz_crash_18 new file mode 100644 index 0000000000000000000000000000000000000000..73521c68ceb2c691962bf53344de5f260776468a GIT binary patch literal 259 zcmc~OE-YqZU|>*xo0!5Nz`(!=WHU1GFq~#&WMBcZ6@VB7m_ZUi@Eb(@2VxNa|NsA~ zAU+T*hfoZcA+*C=DBsY?*o4cWfr()W*Z?u0HBgg43V;?eFt7sE0>!|>AZLJ_0|Fpg y8i<*JSfT+)fB{T56Hq)YGbdG`A%WpC&>{c-|N0Lx1Iz&uI6M*!F$d%kh)MvqE-v%{ literal 0 HcmV?d00001 diff --git a/fuzzer/inputs/extract.fuzz_crash_19 b/fuzzer/inputs/extract.fuzz_crash_19 new file mode 100644 index 0000000000000000000000000000000000000000..a8e6a429206fcd17eaaa0d0a46c7b4164d681edc GIT binary patch literal 259 zcmc~OE-YqZU|>*xo0!5Nz`(!=WHU1GFq~#&WMBcZ6@VB7m_ZUi@Ebxg{D*>6D1SMW zz6_<`LTNK2OG7S)1}26jU<1T})<8{yDgaui0JfG9qy^**kaIu)L`wrPGZ0HO00}UF l>1G0or)B1(3N$1@WmqAuXE+GugDG|d2k1Kn1q2t)0sv*@8?XQX literal 0 HcmV?d00001 diff --git a/fuzzer/inputs/extract.fuzz_crash_2 b/fuzzer/inputs/extract.fuzz_crash_2 new file mode 100644 index 0000000000000000000000000000000000000000..04aba3cc57d7f4603f57ccdd6c2a60bc5453035b GIT binary patch literal 103 zcmc~OE-Y4NU|^UwJtL8kfr){UK>&ya8BQ}YGOz%}85r2XWD1xB6G=b-=Ow^d3?T6& NWStBQAX$)VCIE()3wHnj literal 0 HcmV?d00001 diff --git a/fuzzer/inputs/extract.fuzz_crash_20 b/fuzzer/inputs/extract.fuzz_crash_20 new file mode 100644 index 0000000000000000000000000000000000000000..6925a63ced878d1f05c0ba9ef4dff119a34a3ec1 GIT binary patch literal 818 zcmc~OE-Y4OU|=XZRFKNRz{J1^WV0~{GMr{)WMBcZ6@VB7m_QOh@C!mQ7(nS1D7_3y zUjmu|0&k#vv$NJ;_cw4dECK63f3P4GY7kT&LNPMDh08@|5X-33T-Xo%ssQ$8-IbtH{oW^nc3I5-_9CAtP^Vt(aSjX^p3f!GfpFQFJrFf0p=QRoU7wiP;+-Fa?f6tDi z&VBZT`zv^Y?LK?L{dGHvIzOL1;r?5jK%M*S3HLwQ5!AWQo^Zdlan!lbo^b!09Y&q| z>m8AL`s^ zPq@Dv_M*;x_JsS-!yeSR&z^AqO&CR;`|Jt#KZf0?bDuro{^!8gJ@@tc%l{e}i`-XC z=`rUvZRwzTk1W&z|t}=L_a6_t_Kf-!2%;+>b#` z{$eqOy36;(=7Yr&eFr{k{`?#G*6?_O*FR^^inHK%FQ^dR*P(#_=<&*ut7iNvlvup` zWvmE(3Mwp$H?Sg@{~C+pb*u=6zQLk+4J(34?_p8AiWR|lw^$UfU_~&~eJqM|SP?PE zP$=+! z5skPOSK?A^V$M#q;-0t>*WyZCicQ?tQ@7%txDnUlN?eLf+>dw1{lz_TBd*1jxDIaLFE}3 zn1I|2kf~4;;SwMQ(8R*^7@(Nz|9=K$WHX?e7`YjkAj}K~21B6P#j>&>+dv>m76e4V WB!nomwiblQae=9gVA2301S0`)up-g` literal 0 HcmV?d00001 diff --git a/fuzzer/inputs/extract.fuzz_crash_5 b/fuzzer/inputs/extract.fuzz_crash_5 new file mode 100644 index 0000000000000000000000000000000000000000..8447a34469b85b0f0c22c6c91e325a80d2182da6 GIT binary patch literal 241 zcmc~OE-dC^0D+BQ(tx1{Of&puU|@!@!a&qV2%Dh=O2ha`K)xebjERwfAp>k0#3ZOf z2*n7LS&spVx&HrWP-Xy`0Rc=9ijkWE!pZ>inTlm)frf)Yk}MdAKqxR-Xl*SBlKcM` UL_(YZVnLi?zyLK1DB=&q0Ez7+CIA2c literal 0 HcmV?d00001 diff --git a/fuzzer/inputs/extract.fuzz_crash_6 b/fuzzer/inputs/extract.fuzz_crash_6 new file mode 100644 index 0000000000000000000000000000000000000000..7dca1337e3b5a1618ca94c05d5bafc938221ea8d GIT binary patch literal 96 ncmc~OE-YpMf(8Z#Mi7kzGJk_O0wCf$Ljs7x2hepx)N%m;fwlz~ literal 0 HcmV?d00001 diff --git a/fuzzer/inputs/extract.fuzz_crash_7 b/fuzzer/inputs/extract.fuzz_crash_7 new file mode 100644 index 0000000000000000000000000000000000000000..61edb7007da30b57525e8182d74ce95d0254852c GIT binary patch literal 96 bcmc~OE-ao71`L#ex@AxRH3np6$@J*}U6c;? literal 0 HcmV?d00001 diff --git a/fuzzer/inputs/extract.fuzz_crash_8 b/fuzzer/inputs/extract.fuzz_crash_8 new file mode 100644 index 0000000000000000000000000000000000000000..f1f18acba69100be6266aac021941aaf49aab35c GIT binary patch literal 97 Qcmd;LpcVKJ1Po6Y02|!|>i_@% literal 0 HcmV?d00001 diff --git a/fuzzer/inputs/extract.fuzz_crash_9 b/fuzzer/inputs/extract.fuzz_crash_9 new file mode 100644 index 0000000000000000000000000000000000000000..112a525e9f92e5a2af128b08cdda26b5614f1251 GIT binary patch literal 744 zcmc~OE-YqZU|>*xo0!5Nz`(!=WHU1GFq~#&WMBcZ6@VB7m_ZUi@Ebxg{D*>6D1SMW zz6_<`LTN)IV-qfi1}26jU<1T}*1)tP(P|(zD^LrP7?24ygVt0GZ7hI>7~F7>{}>tG df`viB4GMM;0MXK57Wo8fxRJ~omf?>QngA)8jr9Nk literal 0 HcmV?d00001 diff --git a/fuzzer/inputs/extract.fuzz_leak_1 b/fuzzer/inputs/extract.fuzz_leak_1 new file mode 100644 index 0000000000000000000000000000000000000000..23b0bdccc729c9b9ad4b81b94446383992822a82 GIT binary patch literal 432 zcmc~OE-YqZU|>*xo0!5Nz`(!=WHU1GFq~#&WMBcZ6@VB7m_ZUi@Ebxg{D*>+pAdoN z5K4r8fZ;OKDQ}^)p^>o(mqP;+!xFGt#ehD7IvT2gfq@msVq|y=76$nk*xo0!5Nz`(!=WHU1GFq{T4kN`83{~Idy9|}^T{N+&kGL(J`r45aY zO}HEym>8CT4G;rbgJv=VD^MvT!&|U0$QdB#r~)yFmIh*GAeLwV5?}z+%>)!r%gjj? NXh?v{5JlnD4gg0=9V7q% literal 0 HcmV?d00001 diff --git a/test/fuzzer/fuzz_crash_1 b/test/fuzzer/fuzz_crash_1 new file mode 100644 index 0000000000000000000000000000000000000000..2f98731b1fed715603c66a81b03c3ca6e8058c88 GIT binary patch literal 198 zcmc~OE-YqdU|^Uw9Y`PpJ4O%>D3!t}i&L7xC<(5|2+T@If&fN_q@@2~ULTHBNT-psx3`;=D m7{sCzQ;eYE3|oPW3~Cw%HJI`L|Nl(?|G)ju0keq#SqK3ALMEvI literal 0 HcmV?d00001 diff --git a/test/fuzzer/fuzz_crash_11 b/test/fuzzer/fuzz_crash_11 new file mode 100644 index 0000000000000000000000000000000000000000..a690736526cadd1e592d605742cd5442b5de945c GIT binary patch literal 271 zcmc~OE-YqZU|>*xo0!5Nz`(!=WHU1GFq~#&WMBcZ6@X$OzzmWAg5L}bAmvQ|p&%73 z%D}K3N?(T3Z=tlIk+BJvLjx1T5~u-CN(^WplnGVIz`zP*F*3Xb3xnJPvIqn~v@{Si egE%07t`Q;%B@K;$_KAz5h=KJGFqjEwJ}Ut3wj0F& literal 0 HcmV?d00001 diff --git a/test/fuzzer/fuzz_crash_12 b/test/fuzzer/fuzz_crash_12 new file mode 100644 index 0000000000000000000000000000000000000000..fe1f502900769334fbb2df976c2f9bbcd269713c GIT binary patch literal 1095 zcmc~OE-YqZU|>*xo0!5Nz`(!=WHU1GFq~#&WMBcZ6@VB7m_ZUi@Ebxg{D*>6D1SMW zzRUnJje+4Uly7KcY{KQxz{IcwY=9Wh8mLK71q=+VKo%pzTd*+584v>)zy?VJ<(Pq3 zq5()y1E5<@4KoM83`B54EQbZRrK!0oNx?k;ZXX_2;!H^Y2f%-@EJL!@RV3@ct^oj# C@ge#E literal 0 HcmV?d00001 diff --git a/test/fuzzer/fuzz_crash_13 b/test/fuzzer/fuzz_crash_13 new file mode 100644 index 0000000000000000000000000000000000000000..2b305c5120c660c009cc98d6abe272655ed2596b GIT binary patch literal 265 zcmc~OE-YqZU|>*xo0!5Nz`(!=WHU1GFq~#&WMBcZ6@VB7m_ZUi@Ebxg{D*>6D1SMW zz6_<`LTN)IV`DCd1}26jU<1T})&LnW-3$ysyIFxs85!P!_KbrcenN-Rh(PSy>6`!lOc2h)0)WW1}}=B z?uvkhl$*jtiYz|*s!0BGyI${&BB{W8MX|~#Qe3Zl-vF5T?ZqG^`i%d#eb|;<-&U3h wYZ*a;TOA!^J-N(q&b&OC_&1k!J~a#Z(I%WW-Tqh3|Kp_ddB)7>ZYi6+EB>a7z5oCK literal 0 HcmV?d00001 diff --git a/test/fuzzer/fuzz_crash_15 b/test/fuzzer/fuzz_crash_15 new file mode 100644 index 0000000000000000000000000000000000000000..01f0c36e34a3064e904813316611438c66efea55 GIT binary patch literal 843 zcmcgqI|{-;5PiEbRV=iTU}dG?DZEO+fUV>Ldl97aY#;u7K7MICc&4UdK`@np#&cx<%5NZOF( zrVw&z=+LSzHY&f5B5jS&O_6x~|x#lK7bxNS53v)ut!TK`{mE0bAynfVP^Q$T?L literal 0 HcmV?d00001 diff --git a/test/fuzzer/fuzz_crash_16 b/test/fuzzer/fuzz_crash_16 new file mode 100644 index 0000000000000000000000000000000000000000..28c175f64fd73e140f49a1d1d895ed327acab220 GIT binary patch literal 395 zcmZ`$I|@QE5S-*G2+zVw#L7zHox-aGd|)f@0y&J}2|R#>m8I7(y-`y`gleD%5EsIm#TFTz; X&%?~ex1(L^t1=YH4Rssf7fkR02`47F literal 0 HcmV?d00001 diff --git a/test/fuzzer/fuzz_crash_17 b/test/fuzzer/fuzz_crash_17 new file mode 100644 index 0000000000000000000000000000000000000000..4d69c8ade52dad783f7c398e41f6e45d8e0bd46e GIT binary patch literal 1207 zcmc~OE-YqZU{rsbn8Lsyz`(%B0Kz;Brx_U;Sb%H=AO-5sv|Dhli%wu3! z4y7-H3;}|-P`;6gnFW_a0~5&9B@7H=KzpDjDFVg7fE7qGGQ0%~gWSOd6=zar;9!uh z0@~e#13(o*C?um95Jq#M7!4B#(O{E-v_u2QD0DW=PA-N!4pe00{#D$cZ!n zY?PX*fXe`LToUvU|NjGFiy{*wbiv8xADE<+fEo@=6GE8j0w@`a5uq^W1j87}bUTQ{ aj4Xn|9&*u-;RAXK&?@>tevk$MAPoRq65T`q literal 0 HcmV?d00001 diff --git a/test/fuzzer/fuzz_crash_18 b/test/fuzzer/fuzz_crash_18 new file mode 100644 index 0000000000000000000000000000000000000000..73521c68ceb2c691962bf53344de5f260776468a GIT binary patch literal 259 zcmc~OE-YqZU|>*xo0!5Nz`(!=WHU1GFq~#&WMBcZ6@VB7m_ZUi@Eb(@2VxNa|NsA~ zAU+T*hfoZcA+*C=DBsY?*o4cWfr()W*Z?u0HBgg43V;?eFt7sE0>!|>AZLJ_0|Fpg y8i<*JSfT+)fB{T56Hq)YGbdG`A%WpC&>{c-|N0Lx1Iz&uI6M*!F$d%kh)MvqE-v%{ literal 0 HcmV?d00001 diff --git a/test/fuzzer/fuzz_crash_19 b/test/fuzzer/fuzz_crash_19 new file mode 100644 index 0000000000000000000000000000000000000000..a8e6a429206fcd17eaaa0d0a46c7b4164d681edc GIT binary patch literal 259 zcmc~OE-YqZU|>*xo0!5Nz`(!=WHU1GFq~#&WMBcZ6@VB7m_ZUi@Ebxg{D*>6D1SMW zz6_<`LTNK2OG7S)1}26jU<1T})<8{yDgaui0JfG9qy^**kaIu)L`wrPGZ0HO00}UF l>1G0or)B1(3N$1@WmqAuXE+GugDG|d2k1Kn1q2t)0sv*@8?XQX literal 0 HcmV?d00001 diff --git a/test/fuzzer/fuzz_crash_2 b/test/fuzzer/fuzz_crash_2 new file mode 100644 index 0000000000000000000000000000000000000000..04aba3cc57d7f4603f57ccdd6c2a60bc5453035b GIT binary patch literal 103 zcmc~OE-Y4NU|^UwJtL8kfr){UK>&ya8BQ}YGOz%}85r2XWD1xB6G=b-=Ow^d3?T6& NWStBQAX$)VCIE()3wHnj literal 0 HcmV?d00001 diff --git a/test/fuzzer/fuzz_crash_20 b/test/fuzzer/fuzz_crash_20 new file mode 100644 index 0000000000000000000000000000000000000000..6925a63ced878d1f05c0ba9ef4dff119a34a3ec1 GIT binary patch literal 818 zcmc~OE-Y4OU|=XZRFKNRz{J1^WV0~{GMr{)WMBcZ6@VB7m_QOh@C!mQ7(nS1D7_3y zUjmu|0&k#vv$NJ;_cw4dECK63f3P4GY7kT&LNPMDh08@|5X-33T-Xo%ssQ$8-IbtH{oW^nc3I5-_9CAtP^Vt(aSjX^p3f!GfpFQFJrFf0p=QRoU7wiP;+-Fa?f6tDi z&VBZT`zv^Y?LK?L{dGHvIzOL1;r?5jK%M*S3HLwQ5!AWQo^Zdlan!lbo^b!09Y&q| z>m8AL`s^ zPq@Dv_M*;x_JsS-!yeSR&z^AqO&CR;`|Jt#KZf0?bDuro{^!8gJ@@tc%l{e}i`-XC z=`rUvZRwzTk1W&z|t}=L_a6_t_Kf-!2%;+>b#` z{$eqOy36;(=7Yr&eFr{k{`?#G*6?_O*FR^^inHK%FQ^dR*P(#_=<&*ut7iNvlvup` zWvmE(3Mwp$H?Sg@{~C+pb*u=6zQLk+4J(34?_p8AiWR|lw^$UfU_~&~eJqM|SP?PE zP$=+! z5skPOSK?A^V$M#q;-0t>*WyZCicQ?tQ@7%txDnUlN?eLf+>dw1{lz_TBd*1jxD*xo0!5Nz`(!=WHU1GFq{T4kN`83{~Idy9|}^T{N+&kGL(J`r45aY zO}HEym>8CT4G;rbgJv=VD^MvT!&|U0$QdB#r~)yFmIh*GAeLwV5?}z+%>)!r%gjj? NXh?v{5JlnD4gg0=9V7q% literal 0 HcmV?d00001 diff --git a/test/fuzzer/fuzz_crash_3 b/test/fuzzer/fuzz_crash_3 new file mode 100644 index 0000000000000000000000000000000000000000..ec864f055f58e5466bd7b55829afdfe0dd8e6e57 GIT binary patch literal 116 zcmc~OE-Y4NU|^UwJtL8kfr){UQGkJ!L6G4zBO?O~P@G{Wh+tqyflv%(KsqTY3Bq$= eU`T+lKqR9qhFJ_i6M<%x6f!V?Fvto9CME!hyAL-2 literal 0 HcmV?d00001 diff --git a/test/fuzzer/fuzz_crash_4 b/test/fuzzer/fuzz_crash_4 new file mode 100644 index 0000000000000000000000000000000000000000..0af63ae1d9a86693aac97756e5811c825c6ba0ae GIT binary patch literal 241 zcmc~OE-dEy!2kpsK?H*VLl2l{1Cfjw#b3A_!TgV4l7Rt6w*dKTfw+(ns0>IaLFE}3 zn1I|2kf~4;;SwMQ(8R*^7@(Nz|9=K$WHX?e7`YjkAj}K~21B6P#j>&>+dv>m76e4V WB!nomwiblQae=9gVA2301S0`)up-g` literal 0 HcmV?d00001 diff --git a/test/fuzzer/fuzz_crash_5 b/test/fuzzer/fuzz_crash_5 new file mode 100644 index 0000000000000000000000000000000000000000..8447a34469b85b0f0c22c6c91e325a80d2182da6 GIT binary patch literal 241 zcmc~OE-dC^0D+BQ(tx1{Of&puU|@!@!a&qV2%Dh=O2ha`K)xebjERwfAp>k0#3ZOf z2*n7LS&spVx&HrWP-Xy`0Rc=9ijkWE!pZ>inTlm)frf)Yk}MdAKqxR-Xl*SBlKcM` UL_(YZVnLi?zyLK1DB=&q0Ez7+CIA2c literal 0 HcmV?d00001 diff --git a/test/fuzzer/fuzz_crash_6 b/test/fuzzer/fuzz_crash_6 new file mode 100644 index 0000000000000000000000000000000000000000..7dca1337e3b5a1618ca94c05d5bafc938221ea8d GIT binary patch literal 96 ncmc~OE-YpMf(8Z#Mi7kzGJk_O0wCf$Ljs7x2hepx)N%m;fwlz~ literal 0 HcmV?d00001 diff --git a/test/fuzzer/fuzz_crash_7 b/test/fuzzer/fuzz_crash_7 new file mode 100644 index 0000000000000000000000000000000000000000..61edb7007da30b57525e8182d74ce95d0254852c GIT binary patch literal 96 bcmc~OE-ao71`L#ex@AxRH3np6$@J*}U6c;? literal 0 HcmV?d00001 diff --git a/test/fuzzer/fuzz_crash_8 b/test/fuzzer/fuzz_crash_8 new file mode 100644 index 0000000000000000000000000000000000000000..f1f18acba69100be6266aac021941aaf49aab35c GIT binary patch literal 97 Qcmd;LpcVKJ1Po6Y02|!|>i_@% literal 0 HcmV?d00001 diff --git a/test/fuzzer/fuzz_crash_9 b/test/fuzzer/fuzz_crash_9 new file mode 100644 index 0000000000000000000000000000000000000000..112a525e9f92e5a2af128b08cdda26b5614f1251 GIT binary patch literal 744 zcmc~OE-YqZU|>*xo0!5Nz`(!=WHU1GFq~#&WMBcZ6@VB7m_ZUi@Ebxg{D*>6D1SMW zz6_<`LTN)IV-qfi1}26jU<1T}*1)tP(P|(zD^LrP7?24ygVt0GZ7hI>7~F7>{}>tG df`viB4GMM;0MXK57Wo8fxRJ~omf?>QngA)8jr9Nk literal 0 HcmV?d00001 diff --git a/test/fuzzer/fuzz_leak_1 b/test/fuzzer/fuzz_leak_1 new file mode 100644 index 0000000000000000000000000000000000000000..23b0bdccc729c9b9ad4b81b94446383992822a82 GIT binary patch literal 432 zcmc~OE-YqZU|>*xo0!5Nz`(!=WHU1GFq~#&WMBcZ6@VB7m_ZUi@Ebxg{D*>+pAdoN z5K4r8fZ;OKDQ}^)p^>o(mqP;+!xFGt#ehD7IvT2gfq@msVq|y=76$nk +#include +#include + +#define HEADER \ + "#include \n" \ + "#include \n" \ + "int LLVMFuzzerTestOneInput(char *data, size_t size);" + +#define TEST_PRE_FORMAT \ + "UTEST(fuzzer_repro, %s) {\n" \ + " (void)utest_result;\n" \ + " unsigned char input[] = {\n" + +#define TEST_POST \ + "\n" \ + " };\n" \ + " LLVMFuzzerTestOneInput((char *)input, sizeof(input));\n" \ + "}\n" + +#define FOOTER "UTEST_MAIN()" + +int +main(int argc, char *argv[]) { + puts("#include \n" + ""); + puts(HEADER); + for (int i = 1; i < argc; i++) { + printf(TEST_PRE_FORMAT, basename(argv[i])); + FILE *f = fopen(argv[i], "rb"); + assert(f); + int c; + while ((c = fgetc(f)) != EOF) { + printf("0x%02x, ", c); + } + fclose(f); + puts(TEST_POST); + } + puts(FOOTER); + return 0; +} diff --git a/test/libsqsh/archive/archive.c b/test/libsqsh/archive/archive.c new file mode 100644 index 00000000..3d5c0e24 --- /dev/null +++ b/test/libsqsh/archive/archive.c @@ -0,0 +1,166 @@ +/* + * BSD 2-Clause License + * + * Copyright (c) 2023, Enno Boland + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * @author Enno Boland (mail@eboland.de) + * @file file.c + */ + +#include "../common.h" +#include + +#include +#include +#include +#include + +UTEST(file, load_file) { + int rv; + struct SqshArchive archive = {0}; + struct SqshFile file = {0}; + uint8_t payload[8192] = { + SQSH_HEADER, + /* inode */ + [INODE_TABLE_OFFSET + 15] = METABLOCK_HEADER(0, 128), + 0, + 0, + 0, + INODE_HEADER(2, 0666, 0, 0, 4242, 1), + INODE_BASIC_FILE(1024, 0xFFFFFFFF, 0, 1), + UINT32_BYTES(42), + + }; + mk_stub(&archive, payload, sizeof(payload)); + + uint64_t inode_ref = sqsh_address_ref_create(15, 3); + rv = sqsh__file_init(&file, &archive, inode_ref); + ASSERT_EQ(0, rv); + + ASSERT_EQ(SQSH_FILE_TYPE_FILE, sqsh_file_type(&file)); + ASSERT_EQ(0666, sqsh_file_permission(&file)); + ASSERT_EQ((uint32_t)4242, sqsh_file_modified_time(&file)); + ASSERT_EQ((uint32_t)1024, sqsh_file_blocks_start(&file)); + ASSERT_EQ(false, sqsh_file_has_fragment(&file)); + + ASSERT_EQ((uint32_t)1, sqsh_file_block_count(&file)); + ASSERT_EQ((uint32_t)42, sqsh_file_block_size(&file, 0)); + + sqsh__file_cleanup(&file); + sqsh__archive_cleanup(&archive); +} + +UTEST(file, resolve_file) { + int rv = 0; + struct SqshArchive archive = {0}; + uint8_t payload[] = { + /* clang-format off */ + SQSH_HEADER, + [1024] = '1', '2', '3', '4', '5', '6', '7', '8', + /* inode */ + [INODE_TABLE_OFFSET] = METABLOCK_HEADER(0, 1024), + INODE_HEADER(1, 0, 0, 0, 0, 1), + INODE_BASIC_DIR(0, 1024, 0, 0), + [INODE_TABLE_OFFSET+2+128] = + INODE_HEADER(3, 0, 0, 0, 0, 2), + INODE_BASIC_SYMLINK(3), + 't', 'g', 't', + [INODE_TABLE_OFFSET+2+256] = + INODE_HEADER(2, 0, 0, 0, 0, 3), + INODE_BASIC_FILE(1024, 0xFFFFFFFF, 0, 8), + DATA_BLOCK_REF(8, 0), + [DIRECTORY_TABLE_OFFSET] = METABLOCK_HEADER(0, 128), + DIRECTORY_HEADER(2, 0, 0), + DIRECTORY_ENTRY(128, 2, 3, 3), + 's', 'r', 'c', + DIRECTORY_ENTRY(256, 3, 2, 3), + 't', 'g', 't', + [FRAGMENT_TABLE_OFFSET] = 0, + /* clang-format on */ + }; + mk_stub(&archive, payload, sizeof(payload)); + + struct SqshFile *symlink = sqsh_lopen(&archive, "/src", &rv); + ASSERT_EQ(0, rv); + ASSERT_EQ(SQSH_FILE_TYPE_SYMLINK, sqsh_file_type(symlink)); + + rv = sqsh_file_symlink_resolve(symlink); + ASSERT_EQ(0, rv); + ASSERT_EQ(SQSH_FILE_TYPE_FILE, sqsh_file_type(symlink)); + ASSERT_EQ((uint32_t)3, sqsh_file_inode(symlink)); + + sqsh_close(symlink); + + sqsh__archive_cleanup(&archive); +} + +UTEST(file, resolve_unkown_dir_inode) { + int rv = 0; + struct SqshArchive archive = {0}; + uint8_t payload[] = { + /* clang-format off */ + SQSH_HEADER, + [1024] = '1', '2', '3', '4', '5', '6', '7', '8', + /* inode */ + [INODE_TABLE_OFFSET] = METABLOCK_HEADER(0, 1024), + INODE_HEADER(1, 0, 0, 0, 0, 1), + INODE_BASIC_DIR(0, 1024, 0, 0), + [INODE_TABLE_OFFSET+2+128] = + INODE_HEADER(3, 0, 0, 0, 0, 2), + INODE_BASIC_SYMLINK(3), + 't', 'g', 't', + [INODE_TABLE_OFFSET+2+256] = + INODE_HEADER(2, 0, 0, 0, 0, 3), + INODE_BASIC_FILE(1024, 0xFFFFFFFF, 0, 8), + DATA_BLOCK_REF(8, 0), + [DIRECTORY_TABLE_OFFSET] = METABLOCK_HEADER(0, 128), + DIRECTORY_HEADER(2, 0, 0), + DIRECTORY_ENTRY(128, 2, 3, 3), + 's', 'r', 'c', + DIRECTORY_ENTRY(256, 3, 2, 3), + 't', 'g', 't', + [FRAGMENT_TABLE_OFFSET] = 0, + /* clang-format on */ + }; + mk_stub(&archive, payload, sizeof(payload)); + + struct SqshFile *symlink = sqsh_lopen(&archive, "/src", &rv); + ASSERT_EQ(0, rv); + ASSERT_EQ(SQSH_FILE_TYPE_SYMLINK, sqsh_file_type(symlink)); + symlink->dir_inode = 0; + symlink->has_dir_inode = false; + + rv = sqsh_file_symlink_resolve(symlink); + ASSERT_EQ(-SQSH_ERROR_INODE_PARENT_UNSET, rv); + + sqsh_close(symlink); + + sqsh__archive_cleanup(&archive); +} + +UTEST_MAIN() diff --git a/test/libsqsh/fuzzer_repro.c b/test/libsqsh/fuzzer_repro.c deleted file mode 100644 index b5ce209f..00000000 --- a/test/libsqsh/fuzzer_repro.c +++ /dev/null @@ -1,1511 +0,0 @@ -/****************************************************************************** - * * - * Copyright (c) 2023-2024, Enno Boland * - * * - * Redistribution and use in source and binary forms, with or without * - * modification, are permitted provided that the following conditions are * - * met: * - * * - * * Redistributions of source code must retain the above copyright notice, * - * this list of conditions and the following disclaimer. * - * * Redistributions in binary form must reproduce the above copyright * - * notice, this list of conditions and the following disclaimer in the * - * documentation and/or other materials provided with the distribution. * - * * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS * - * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR * - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * * - ******************************************************************************/ - -/** - * @author Enno Boland (mail@eboland.de) - * @file fuzzer_repro.c - */ - -#include "common.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include - -int LLVMFuzzerTestOneInput(char *data, size_t size); - -UTEST(extract, fuzz_crash_1) { - (void)utest_result; - char input[] = { - 0x68, 0x73, 0x71, 0x73, 0x3, 0x0, 0x0, 0x0, 0x96, 0x97, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x3e, 0x1, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, - 0x0, 0x64, 0x1, 0x1d, 0x0, 0x0, 0x96, 0x97, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x3e, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32, 0x62, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x32, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x60, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, - 0x1, 0x0, 0x62, 0x62, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x36, - 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, - 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, - 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, - 0x62, 0x62, 0x62, 0x62, 0x62, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x60, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x1, 0x0, - 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x36, 0x62, 0x62, 0x62, 0x62, 0x62, - 0x62, 0x62, 0x29, 0x62, 0x62, 0x62, 0x62, 0xff, 0xff, 0x62, 0x62}; - - LLVMFuzzerTestOneInput(input, sizeof(input)); -} - -UTEST(extract, fuzz_crash_2) { - (void)utest_result; - char input[] = { - 0x68, 0x73, 0x71, 0x73, 0x23, 0x0, 0x0, 0x0, 0x96, 0x97, 0x68, - 0x61, 0x1, 0x0, 0x2, 0x0, 0x1, 0x0, 0x10, 0x0, 0x1, 0x0, - 0x11, 0x0, 0xcb, 0x1, 0x1, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x62, 0x62, 0x62, 0x62, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x60, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x62, 0x62, - 0x62, 0x62, 0x62, 0x11, 0x0, 0xcb, 0x1, 0x1, 0x0, 0x4, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x60, 0x0, 0x0, 0x0, 0x62, - 0x62, 0x62, 0x0, 0x2, - }; - - LLVMFuzzerTestOneInput(input, sizeof(input)); -} - -UTEST(extract, fuzz_crash_3) { - (void)utest_result; - char input[] = { - 0x68, 0x73, 0x71, 0x73, 0x23, 0x0, 0x0, 0x0, 0x96, 0x97, 0x68, - 0x61, 0x1, 0x0, 0x2, 0x0, 0x1, 0x1, 0x10, 0x0, 0x5, 0x0, - 0x11, 0x0, 0xcb, 0x1, 0x1, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, - 0xb9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x76, 0x0, 0x0, 0x0, 0x62, 0x62, 0x62, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x60, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1d, - 0x73, 0x71, 0x73, 0x23, 0x0, 0x0, 0x0, 0x96, 0x97, 0x68, 0x61, - 0x1, 0x0, 0x2, 0x0, 0x1, 0x1, 0x0, 0x0, 0x2, 0x0, 0x11, - 0x0, 0xcb, 0x74, 0x71, 0x0, 0x0, 0x74, 0x71, 0x0, 0x0, 0x68, - 0x61, 0x1, 0x0, 0x0, 0x2, 0x2, - }; - - LLVMFuzzerTestOneInput(input, sizeof(input)); -} - -UTEST(extract, fuzz_crash_4) { - (void)utest_result; - char input[] = { - 0x68, 0x73, 0x71, 0x73, 0xa, 0xf8, 0x0, 0x0, 0x0, 0x0, 0xb1, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x8c, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x1, 0x68, 0x73, 0xf4, - 0xa, 0x41, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf1, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0xf1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x84, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0x0, 0x71, 0x1, - 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x62, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x1, 0x0, 0x0, 0x68, 0x73, - 0x71, 0x73, 0xa, 0x0, 0xb1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x1, 0x68, 0x73, 0x71, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, - 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, - 0xaf, 0x73, 0xa, 0xff, 0xff, 0x0, 0x23, 0x0, 0x62, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x1, 0xb, 0x0, 0x2, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x68, 0x0, 0x0, 0x31, 0x0, 0x0, 0x2, 0x73, - 0x1d, 0x1d, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x62, - 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x14, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, - 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x71, 0x3b, 0x3b, 0x11, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, - 0xb1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - }; - - LLVMFuzzerTestOneInput(input, sizeof(input)); -} - -UTEST(extract, fuzz_crash_5) { - (void)utest_result; - char input[] = { - 0x68, 0x73, 0x71, 0x73, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x8c, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x00, - 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, - 0x00, 0x68, 0x73, 0x71, 0x73, 0x0a, 0x00, 0xb1, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x68, 0x73, 0x71, 0xaf, 0xaf, 0xaf, - 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, 0xaf, - 0xaf, 0xaf, 0xaf, 0xaf, 0x73, 0x0a, 0xff, 0xff, 0x00, 0x23, 0x00, - 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0b, 0x00, 0x02, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, - 0x73, 0x1d, 0x1d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x62, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x14, 0x1d, 0x1d, 0x1d, - 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x1d, 0x71, 0x3b, 0x3b, - 0x11, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x00, - 0x68, 0x73, 0x71, 0x73, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, - }; - - LLVMFuzzerTestOneInput(input, sizeof(input)); -} - -UTEST(extract, fuzz_crash_6) { - (void)utest_result; - char input[] = { - 0x68, 0x73, 0x71, 0x73, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x1, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x69, 0xfb, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, - 0x0, 0x0, 0xf7, 0x0, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, - }; - - LLVMFuzzerTestOneInput(input, sizeof(input)); -} - -UTEST(extract, fuzz_crash_7) { - (void)utest_result; - char input[] = { - 0x68, 0x73, 0x71, 0x73, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7e, 0xa6, 0xa6, 0xa6, - 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x97, 0x97, 0x97, 0x97, 0x74, 0x97, 0x97, - }; - - LLVMFuzzerTestOneInput(input, sizeof(input)); -} - -UTEST(extract, fuzz_crash_8) { - (void)utest_result; - char input[] = { - 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0x0, 0xe4, 0x0, - }; - - LLVMFuzzerTestOneInput(input, sizeof(input)); -} - -UTEST(extract, fuzz_crash_9) { - (void)utest_result; - char input[] = { - 0x68, 0x73, 0x71, 0x73, 0x02, 0x00, 0x00, 0x00, 0x27, 0xed, 0x61, - 0x64, 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x0c, 0x00, 0xcb, 0x01, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x65, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xed, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x32, 0x33, - 0x34, 0x0a, 0x40, 0x80, 0x02, 0x00, 0xa4, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x16, 0xed, 0x61, 0x64, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0x26, 0xff, 0xff, 0xff, 0xff, 0x05, 0x00, 0x00, 0x00, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x27, 0xed, 0x61, 0x64, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x26, 0xff, 0xff, 0xff, 0xff, 0x05, 0x00, 0x00, 0x00, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - - LLVMFuzzerTestOneInput(input, sizeof(input)); -} - -UTEST(extract, fuzz_crash_10) { - (void)utest_result; - char input[] = { - 0x68, 0x73, 0x71, 0x73, 0x02, 0xfb, 0xff, 0x00, 0x27, 0xed, 0x61, - 0x64, 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, - 0x0c, 0x00, 0xcb, 0x01, 0x60, 0x00, 0x04, 0x00, 0x00, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x3d, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xa7, 0x0a, 0x2b, 0x80, 0x02, 0x00, 0xa4, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x16, 0x5b, 0x61, 0x64, 0x32, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, - 0x68, 0x73, 0x71, 0x73, 0x02, 0xfb, 0xff, 0x00, 0x27, 0xed, 0x61, - 0x64, 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, - 0x0c, 0x00, 0xcb, 0x01, 0x60, 0x00, 0x04, 0x00, 0x00, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x3d, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xa7, 0x0a, 0x2b, 0x80, 0x02, 0x00, 0xa4, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x16, 0x5b, 0x61, 0x64, 0x32, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, - 0x02, 0xff, 0xff, 0xed, 0xff, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0x02, 0xff, 0xff, - 0xed, 0xff, 0x08, 0x00, 0x00}; - - LLVMFuzzerTestOneInput(input, sizeof(input)); -} - -UTEST(extract, fuzz_crash_11) { - (void)utest_result; - char input[] = { - 0x68, 0x73, 0x71, 0x73, 0x02, 0x00, 0x00, 0x00, 0x27, 0xed, 0x61, - 0x64, 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x0c, 0x00, 0xcb, 0x01, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, - 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x02, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x65, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xed, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x32, 0x33, - 0x34, 0x0a, 0x40, 0x80, 0x02, 0x00, 0xa4, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, - 0xed, 0x61, 0x64, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, - 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, 0x00, 0x00, 0x00, 0x27, 0xed, - 0x61, 0x64, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x31, 0x32, 0x0a, 0x40, 0x80, 0x17, 0x17, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, 0x00, 0x00, 0x00, 0x27, - 0xed, 0x61, 0x64, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x05}; - - LLVMFuzzerTestOneInput(input, sizeof(input)); -} - -UTEST(extract, fuzz_crash_12) { - (void)utest_result; - char input[] = { - 0x68, 0x73, 0x71, 0x73, 0x02, 0x00, 0x00, 0x00, 0x27, 0xed, 0x61, - 0x64, 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x0c, 0x00, 0xcb, 0x01, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x65, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xd3, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xed, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x32, 0x33, - 0x34, 0x0a, 0x40, 0x80, 0x02, 0x00, 0xa4, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x16, 0xed, 0x61, 0x64, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, - 0x00, 0x00, 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x27, 0xed, 0x61, 0x64, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x02, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x03, 0x00, - 0x00, 0x00, 0x18, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x39, 0x35, 0x37, 0x35, 0x0a, 0x40, 0x80, 0x02, 0x00, 0xa4, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x16, 0xed, 0x61, 0x64, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0xed, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x27, 0xed, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x7a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - - LLVMFuzzerTestOneInput(input, sizeof(input)); -} - -UTEST(extract, fuzz_crash_13) { - (void)utest_result; - char input[] = { - 0x68, 0x73, 0x71, 0x73, 0x02, 0x00, 0x00, 0x00, 0x27, 0xed, 0x61, - 0x64, 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x0c, 0x00, 0xcb, 0x01, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x65, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xed, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x32, 0x33, - 0x33, 0x0a, 0x40, 0x80, 0x02, 0x00, 0xa4, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x16, 0xed, 0x61, 0x64, 0x01, 0x00, 0x00, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x02, 0x00, 0x00, 0x05, - 0x00, 0x00, 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x64, 0xed, 0x00, 0x27, 0x02, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x02, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x03, 0x00, - 0x00, 0x00, 0x18, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, - 0x03, 0x00, 0x66, 0x69, 0x6c, 0x65, 0x10, 0x80, 0x60, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, - 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, - 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00}; - - LLVMFuzzerTestOneInput(input, sizeof(input)); -} - -UTEST(extract, fuzz_crash_15) { - (void)utest_result; - char input[] = { - 0x68, 0x73, 0x71, 0x73, 0x02, 0x00, 0x00, 0x00, 0x27, 0xed, 0x61, - 0x64, 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x0c, 0x00, 0xcb, 0x01, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x65, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xed, 0x00, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x80, 0x02, 0x00, 0xa4, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x16, 0xed, 0x61, 0x64, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, - 0x00, 0x01, 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x27, 0xed, 0x61, 0x61, 0x02, 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x02, 0x00, 0x00, 0x00, 0x1a, 0xf8, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x18, 0x80, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, - 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x65, 0x80, 0x61, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, - 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0b, 0x71, 0x73, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x65, - 0x80, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x26, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1a, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x18, - 0x80, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x10, - 0x00, 0x00, 0x00, 0x65, 0x80, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x05, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc1, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0xfb, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0xff, 0xff, 0xff, 0x65, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xed, 0x00, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x80, 0x0b, 0x00, 0xa4, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xed, 0x61, 0x64, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, - 0x01, 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, 0x00, 0x00, 0x00, 0x27, - 0xed, 0x61, 0x61, 0x02, 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x1a, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x03, - 0x00, 0x18, 0x80, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, - 0x00, 0x10, 0x00, 0x00, 0x00, 0x65, 0x80, 0x61, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x71, 0x73, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x10, - 0x00, 0x00, 0x00, 0x65, 0x80, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0xfb, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x71, 0x73, - 0x02, 0x00, 0x00, 0x00, 0x64, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0xff}; - - LLVMFuzzerTestOneInput(input, sizeof(input)); -} - -UTEST(extract, fuzz_crash_14) { - (void)utest_result; - char input[] = { - 0x68, 0x73, 0x71, 0x73, 0x02, 0x00, 0x00, 0x00, 0x27, 0xed, 0x61, - 0x64, 0x00, 0x10, 0x00, 0x00, 0x01, 0xff, 0xff, 0x00, 0x01, 0x00, - 0x0c, 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0x00, 0x0e, 0x00, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x65, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xed, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x31, 0x31, - 0x30, 0x0a, 0x40, 0x80, 0x02, 0x00, 0xa4, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x16, 0xed, 0x61, 0x64, 0x01, 0x00, 0x00, 0x0a, 0x00, 0x00, - 0x00, 0x00, 0xf0, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, - 0x00, 0x00, 0x00, 0x01, 0x00, 0xec, 0xfe, 0x00, 0x00, 0x00, 0x00, - 0x27, 0xed, 0x61, 0x64, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x02, 0x00, 0x00, 0x00, 0x1b, 0x25, 0x00, 0x00, 0x03, 0x00, - 0x00, 0x00, 0x18, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, - 0x03, 0x00, 0x66, 0x69, 0x6c, 0x65, 0x10, 0x80, 0x60, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x68, 0x73, 0x71, 0x73, 0x02, 0x00, 0x00, 0x00, 0x27, 0xed, - 0x61, 0x64, 0x00, 0x10, 0x00, 0x00, 0x01, 0xff, 0x00, 0xff, 0x01, - 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x04, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x65, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xed, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x36, - 0x31, 0x37, 0x0a, 0x40, 0x80, 0x02, 0x00, 0xa4, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x16, 0xed, 0x61, 0x64, 0x01, 0x00, 0x00, 0x0a, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0xec, 0xfe, 0x00, 0x00, 0x00, - 0x00, 0x27, 0xed, 0x61, 0x64, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x02, 0x00, 0xfe, 0xff, 0x1b, 0x25, 0x00, 0x00, 0x03, - 0x00, 0x00, 0x00, 0x18, 0x80, 0x02, 0xff, 0x00, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x65, 0x2c, 0x81, 0x60, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x35, 0x31, 0x31, 0x30, 0x0a, 0x40, 0x80, - 0x02, 0x00, 0xa4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x16, 0xed, 0x61, - 0x64, 0x01, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, - 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, - 0x00, 0xec, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x27, 0xed, 0x61, 0x64, - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, - 0x00, 0x1b, 0x25, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x18, 0x80, - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x66, 0x69, - 0x6c, 0x65, 0x10, 0x80, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x05, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x68, 0x73, 0x71, - 0x73, 0x02, 0x00, 0x00, 0x00, 0x27, 0xed, 0x61, 0x64, 0x00, 0x10, - 0x00, 0x00, 0x01, 0xff, 0x00, 0xff, 0x01, 0x00, 0x0c, 0x00, 0x00, - 0x00, 0x00, 0x08, 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xfb, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x65, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xd3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x36, 0x31, 0x37, 0x0a, 0x40, - 0x80, 0x02, 0x00, 0xa4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x16, 0xed, - 0x61, 0x64, 0x01, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x01, 0x00, 0xec, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x27, 0xed, 0x61, - 0x64, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, - 0xfe, 0xff, 0x1b, 0x25, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x18, - 0x80, 0x02, 0xff, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x70, 0x65, 0x2c, 0x81, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0xfe, 0xff, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xf1, 0xfe, - 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0xfe, 0xff, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x04, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xf1, 0xfe, 0xff, - 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00}; - - LLVMFuzzerTestOneInput(input, sizeof(input)); -} - -UTEST(extract, fuzz_crash_16) { - (void)utest_result; - char input[] = { - 0x68, 0x73, 0x71, 0x73, 0x02, 0x00, 0x00, 0x00, 0x27, 0xed, 0x61, - 0x64, 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x0c, 0x00, 0xcb, 0x01, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x65, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xed, 0x00, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x80, 0x02, 0x00, 0xa4, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x16, 0xed, 0x61, 0x64, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, - 0x00, 0x00, 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x27, 0xed, 0x61, 0x61, 0x02, 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x02, 0x00, 0x00, 0x00, 0x1a, 0xf8, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x18, 0x80, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, - 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x65, 0x80, 0x61, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, - 0x0b, 0x71, 0x73, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x02, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x65, 0x80, - 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, - 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, - 0x80, 0x02, 0x00, 0xa4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0b, 0x71, 0x73, 0x02, 0x00, 0x00, 0x00, 0x64, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x73, 0x02, 0x00, 0x08, 0x00}; - - LLVMFuzzerTestOneInput(input, sizeof(input)); -} - -UTEST(extract, fuzz_crash_17) { - (void)utest_result; - char input[] = { - 0x68, 0x73, 0x71, 0x73, 0x02, 0x00, 0x01, 0x27, 0xed, 0x61, 0x64, - 0x00, 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x0c, 0x00, 0xcb, 0x01, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x65, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xd3, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xed, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x34, 0x36, - 0x38, 0x0a, 0x40, 0x80, 0x02, 0x00, 0x00, 0x01, 0x00, 0xa4, 0x00, - 0x00, 0x16, 0xed, 0x61, 0x64, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x21, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, - 0x00, 0x00, 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x27, 0xed, 0x61, 0x64, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x02, 0x23, 0x00, 0x08, 0x00, 0x1b, 0x7a, 0x00, 0x00, 0x03, - 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, - 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, - 0x82, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x16, 0xed, 0x61, 0x64, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x05, 0x00, 0x0a, 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x27, 0xed, 0x61, 0x64, 0x02, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1b, 0x7a, 0x00, - 0x00, 0x03, 0x00, 0x00, 0x00, 0x18, 0x80, 0xff, 0xff, 0xff, 0xff, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x02, 0x00, 0x03, 0x00, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x80, - 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x21, 0x02, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x82, 0x82, 0x12, 0x82, 0x82, - 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, - 0x82, 0x82, 0x82, 0x82, 0x82, 0x00, 0x00, 0x00, 0x5d, 0x80, 0xff, - 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x87, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x02, 0xff, - 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, - 0x1b, 0x1b, 0x1b, 0x1b, 0x1b, 0x00, 0x00, 0x00}; - - LLVMFuzzerTestOneInput(input, sizeof(input)); -} - -UTEST(extract, fuzz_crash_18) { - (void)utest_result; - char input[] = { - 0x68, 0x73, 0x71, 0x73, 0x02, 0x00, 0x00, 0x00, 0x27, 0xed, 0x61, - 0x64, 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x0c, 0x00, 0xcb, 0x01, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x65, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, - 0xed, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x32, 0x33, - 0x34, 0x0a, 0x40, 0x80, 0x02, 0x00, 0xa4, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x16, 0xed, 0x61, 0x64, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x05, - 0xed, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x27, 0xed, 0x61, 0x64, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x02, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x03, 0x00, - 0x00, 0x00, 0x18, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, - 0x03, 0x00, 0x66, 0x69, 0x6c, 0x65, 0x10, 0x80, 0x60, 0x00, 0xd3, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, - 0x00, 0x01, 0x00, 0x0c, 0x00, 0xcb, 0x01, 0x01, 0x00, 0x04, 0x00, - 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, - 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - }; - - LLVMFuzzerTestOneInput(input, sizeof(input)); -} - -UTEST(extract, fuzz_crash_19) { - (void)utest_result; - char input[] = { - 0x68, 0x73, 0x71, 0x73, 0x02, 0x00, 0x00, 0x00, 0x27, 0xed, 0x61, - 0x64, 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x0c, 0x00, 0xcb, 0x01, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x65, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xed, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0x39, - 0x31, 0x0a, 0x40, 0x80, 0x02, 0x00, 0xa4, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x16, 0xed, 0x61, 0x64, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x20, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0xed, 0x00, 0x00, 0x00, - 0x27, 0xed, 0x61, 0x64, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x02, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x03, 0x00, - 0x00, 0x00, 0x18, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, - 0x03, 0x00, 0x66, 0x69, 0x6c, 0x65, 0x10, 0x80, 0x60, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }; - - LLVMFuzzerTestOneInput(input, sizeof(input)); -} - -UTEST(extract, fuzz_crash_20) { - (void)utest_result; - char input[] = { - 0x68, 0x73, 0x71, 0x73, 0x27, 0x00, 0x00, 0x00, 0x72, 0xc2, 0x70, - 0x65, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, - 0x11, 0x00, 0xcb, 0x01, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xd2, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xec, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0xcd, 0x3b, - 0xf5, 0xbf, 0x80, 0x09, 0x00, 0xa4, 0x01, 0x00, 0x00, 0x00, 0x00, - 0xcf, 0xc1, 0x70, 0x65, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, 0x00, 0x00, 0x00, 0xcf, - 0xc1, 0x70, 0x65, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, - 0x00, 0x18, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, - 0x00, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x18, 0x80, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0x00, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x80, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x66, 0x69, - 0x6c, 0x65, 0x18, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, - 0x03, 0x00, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x66, 0x69, 0x6c, 0x65, 0x18, - 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x66, - 0x69, 0x6c, 0x65, 0x18, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x03, 0x00, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x6c, 0x65, 0x19, 0x48, - 0x18, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, - 0x66, 0x69, 0x6c, 0x65, 0x18, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x03, 0x00, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x80, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x66, 0x69, 0x6c, - 0x65, 0x18, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, - 0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x69, 0x6c, 0x65, 0x18, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x03, 0x00, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x6c, 0x65, 0x19, 0x48, - 0x18, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, - 0x6c, 0x65, 0x19, 0x48, - }; - - LLVMFuzzerTestOneInput(input, sizeof(input)); -} - -UTEST(extract, fuzz_crash_21) { - (void)utest_result; - char input[] = { - 0x68, 0x73, 0x71, 0x73, 0x21, 0x00, 0x00, 0x00, 0x8b, 0xf2, 0x75, - 0x65, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, - 0x11, 0x00, 0xcb, 0x01, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x5a, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x6a, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8c, 0x04, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x3a, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x4c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x32, 0x33, - 0x33, 0x0a, 0x31, 0x32, 0x33, 0x34, 0x0a, 0x20, 0x84, 0x02, 0x00, - 0xa4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x9d, 0xf1, 0x75, 0x65, 0x1f, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0xed, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x9d, 0xf1, 0x75, 0x65, 0x1e, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1b, - 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x01, 0x00, 0xed, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x90, 0xf1, 0x75, 0x65, 0x1d, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x18, 0x00, - 0x18, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x90, 0xf1, 0x75, 0x65, 0x1c, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x18, 0x00, 0x2d, - 0x00, 0x1b, 0x00, 0x00, 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x90, 0xf1, 0x75, 0x65, 0x1b, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x18, 0x00, 0x42, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x90, 0xf1, 0x75, 0x65, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x18, 0x00, 0x57, 0x00, 0x19, - 0x00, 0x00, 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x90, 0xf1, 0x75, 0x65, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x03, 0x00, 0x00, 0x00, 0x18, 0x00, 0x6c, 0x00, 0x18, 0x00, - 0x00, 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, 0x00, 0x00, 0x00, 0x90, - 0xf1, 0x75, 0x65, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x18, 0x00, 0x81, 0x00, 0x17, 0x00, 0x00, - 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, 0x00, 0x00, 0x00, 0x90, 0xf1, - 0x75, 0x65, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, - 0x00, 0x00, 0x00, 0x18, 0x00, 0x96, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x01, 0x00, 0xed, 0x01, 0x00, 0x00, 0x00, 0x00, 0x90, 0xf1, 0x75, - 0x65, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, - 0x00, 0x00, 0x18, 0x00, 0xab, 0x00, 0x15, 0x00, 0x00, 0x00, 0x01, - 0x00, 0xed, 0x01, 0x00, 0x00, 0x00, 0x00, 0x90, 0xf1, 0x75, 0x65, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, - 0x00, 0x18, 0x00, 0xc0, 0x00, 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, - 0xed, 0x01, 0x00, 0x00, 0x00, 0x00, 0x90, 0xf1, 0x75, 0x65, 0x14, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x18, 0x00, 0xd5, 0x00, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0xed, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x90, 0xf1, 0x75, 0x65, 0x13, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x18, - 0x00, 0xea, 0x00, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0xed, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x90, 0xf1, 0x75, 0x65, 0x12, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x18, 0x00, - 0xff, 0x00, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x90, 0xf1, 0x75, 0x65, 0x11, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x18, 0x00, 0x14, - 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x90, 0xf1, 0x75, 0x65, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x18, 0x00, 0x29, 0x01, - 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x90, 0xf1, 0x75, 0x65, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x18, 0x00, 0x3e, 0x01, 0x0e, - 0x00, 0x00, 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x90, 0xf1, 0x75, 0x65, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x03, 0x00, 0x00, 0x00, 0x18, 0x00, 0x53, 0x01, 0x0d, 0x00, - 0x00, 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, 0x00, 0x00, 0x00, 0x90, - 0xf1, 0x75, 0x65, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x18, 0x00, 0x68, 0x01, 0x0c, 0x00, 0x00, - 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, 0x00, 0x00, 0x00, 0x90, 0xf1, - 0x75, 0x65, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, - 0x00, 0x00, 0x00, 0x18, 0x00, 0x7d, 0x01, 0x0b, 0x00, 0x00, 0x00, - 0x01, 0x00, 0xed, 0x01, 0x00, 0x00, 0x00, 0x00, 0x90, 0xf1, 0x75, - 0x65, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, - 0x00, 0x00, 0x18, 0x00, 0x92, 0x01, 0x0a, 0x00, 0x00, 0x00, 0x01, - 0x00, 0xed, 0x01, 0x00, 0x00, 0x00, 0x00, 0x90, 0xf1, 0x75, 0x65, - 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, - 0x00, 0x18, 0x00, 0xa7, 0x01, 0x09, 0x00, 0x00, 0x00, 0x01, 0x00, - 0xed, 0x01, 0x00, 0x00, 0x00, 0x00, 0x90, 0xf1, 0x75, 0x65, 0x09, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x18, 0x00, 0xbc, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0xed, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x90, 0xf1, 0x75, 0x65, 0x08, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x18, - 0x00, 0xd1, 0x01, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0xed, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x90, 0xf1, 0x75, 0x65, 0x07, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x18, 0x00, - 0xe6, 0x01, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x90, 0xf1, 0x75, 0x65, 0x06, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x18, 0x00, 0xfb, - 0x01, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x90, 0xf1, 0x75, 0x65, 0x05, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x18, 0x00, 0x10, 0x02, - 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x90, 0xf1, 0x75, 0x65, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x18, 0x00, 0x25, 0x02, 0x03, - 0x00, 0x00, 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x90, 0xf1, 0x75, 0x65, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x03, 0x00, 0x00, 0x00, 0x18, 0x00, 0x3a, 0x02, 0x02, 0x00, - 0x00, 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, 0x00, 0x00, 0x00, 0x90, - 0xf1, 0x75, 0x65, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x18, 0x00, 0x4f, 0x02, 0x01, 0x00, 0x00, - 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, 0x00, 0x00, 0x00, 0x90, 0xf1, - 0x75, 0x65, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, - 0x00, 0x00, 0x00, 0x18, 0x00, 0x64, 0x02, 0x21, 0x00, 0x00, 0x00, - 0x02, 0x00, 0xa4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x16, 0xed, 0x61, - 0x64, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, - 0x00, 0xed, 0x01, 0x00, 0x00, 0x00, 0x00, 0x84, 0xf2, 0x75, 0x65, - 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, - 0x00, 0x24, 0x00, 0x79, 0x02, 0x22, 0x00, 0x00, 0x00, 0x9a, 0x82, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x66, 0x69, - 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, - 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x00, - 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x39, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, - 0x00, 0x60, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x38, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xa0, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0xc0, 0x00, - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x15, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x01, 0x00, - 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, - 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, - 0x00, 0x00, 0xa0, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x38, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, - 0x00, 0xc0, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x37, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0xe0, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x20, 0x02, - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x40, 0x02, 0x00, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x60, 0x02, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0a, 0x00, 0x00, 0x00, 0xa0, 0x02, 0x00, 0x00, 0x01, 0x00, - 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0xc0, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, - 0x00, 0x00, 0x00, 0xe0, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, - 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x37, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, - 0x00, 0x20, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x36, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x40, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x60, - 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x80, 0x03, - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xa0, 0x03, 0x00, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x31, 0xe0, 0x03, 0x1f, 0x00, 0x02, 0x00, - 0x03, 0x00, 0x66, 0x69, 0x6c, 0x65, 0x10, 0x80, 0x60, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x28, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, - 0x81, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x03, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x60, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x40, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x03, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xe0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x60, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x02, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x42, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x80, - 0x00, 0x00, 0x00, 0x00, 0x54, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - }; - - LLVMFuzzerTestOneInput(input, sizeof(input)); -} - -UTEST(extract, fuzz_leak_1) { - (void)utest_result; - char input[] = { - 0x68, 0x73, 0x71, 0x73, 0x02, 0x00, 0x00, 0x00, 0x27, 0xed, 0x61, - 0x64, 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x0c, 0x00, 0xcb, 0x01, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x64, 0xf9, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, - 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, - 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, - 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, - 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, - 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, - 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, - 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, - 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, - 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, - 0xd3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x32, 0x33, 0x34, 0x0a, 0x40, - 0x80, 0x02, 0x00, 0xa4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x16, 0xed, - 0x61, 0x64, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x01, 0x00, 0xed, 0x01, 0x00, 0x00, 0x00, 0x00, 0x27, 0xed, 0x61, - 0x64, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, - 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x18, - 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x66, - 0x69, 0x6c, 0x65, 0x10, 0x80, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x05, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc1, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x04, 0x80, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, - }; - LLVMFuzzerTestOneInput(input, sizeof(input)); -} - -UTEST(extract, fuzz_oom_1) { - (void)utest_result; - int rv; - static const char input[] = { - 0x68, 0x73, 0x71, 0x73, 0x02, 0x00, 0xff, 0xff, 0x27, 0xed, 0x61, - 0x64, 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, - 0x0c, 0x00, 0xcb, 0x01, 0x01, 0x00, 0x08, 0x04, 0x00, 0x00, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xae, 0xff, 0xff, 0xff, 0xff, 0xff, 0x65, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xed, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x32, 0x33, - 0x33, 0x0a, 0x40, 0x00, 0x00, 0x02, 0x00, 0x80, 0xa4, 0x01, 0x00, - 0x00, 0xea, 0x12, 0x9e, 0x9c, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x01, 0x00, 0xed, 0x01, 0x00, 0x02, 0x00, 0xff, 0xff, 0x27, 0xed, - 0x61, 0x64, 0x00, 0x00, 0x00, 0x01, 0x00, 0xed, 0x01, 0x2e, 0x00, - 0x00, 0x00, 0x00, 0x27, 0xed, 0x61, 0x3e, 0x64, 0x00, 0x02, 0x00, - 0xff, 0xff, 0x61}; - - struct SqshArchive *archive; - struct SqshFile *file = NULL; - const struct SqshConfig config = DEFAULT_CONFIG(sizeof(input)); - archive = sqsh_archive_open(input, &config, &rv); - ASSERT_EQ(0, rv); - - uint64_t inode_ref = - sqsh_superblock_inode_root_ref(sqsh_archive_superblock(archive)); - file = sqsh_open_by_ref(archive, inode_ref, &rv); - ASSERT_NE(0, rv); - - sqsh_close(file); - sqsh_archive_close(archive); -} - -UTEST(extract, fuzz_crash_22) { - (void)utest_result; - char input[] = { - 0x68, 0x73, 0x71, 0x73, 0x02, 0x00, 0x00, 0x00, 0x27, 0xed, 0x61, - 0x64, 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x0c, 0x00, 0xcb, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x65, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xed, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x32, 0x33, - 0x34, 0x0a, 0x40, 0x80, 0x02, 0x00, 0xa4, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x16, 0xed, 0x61, 0x64, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, - 0x00, 0x00, 0x00, 0x01, 0x00, 0xed, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x27, 0xed, 0x61, 0x64, 0x02, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, - 0x00, 0x02, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x03, 0x00, - 0x00, 0x00, 0x18, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, - 0x03, 0x00, 0x66, 0x69, 0x6c, 0x65, 0x10, 0x80, 0x60, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03, 0x00, 0x66, - 0x69, 0x6c, 0x65, 0x10, 0x80, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, - }; - - LLVMFuzzerTestOneInput(input, sizeof(input)); -} - -UTEST_MAIN() diff --git a/test/libsqsh/meson.build b/test/libsqsh/meson.build index 0df959b1..d87923a7 100644 --- a/test/libsqsh/meson.build +++ b/test/libsqsh/meson.build @@ -34,11 +34,8 @@ sqsh_test = [ 'include_tests/sqsh_tree.c', 'include_tests/sqsh_xattr.c', 'extract/extract.c', - 'fuzzer_repro.c', ] -sqsh_extra_source = { - 'fuzzer_repro.c': '../../fuzzer/simple.c', -} +sqsh_extra_source = {} sqsh_failing_test = [] sqsh_test_util = [ 'util.c', diff --git a/test/meson.build b/test/meson.build index 55e2dc49..e6e5e645 100644 --- a/test/meson.build +++ b/test/meson.build @@ -4,6 +4,8 @@ utest_dep = dependency('utest') subdir('libsqsh') +subdir('fuzzer') + if get_option('test') == 'extended' subdir('tools') endif From 95609b4a2c79646747eb0a46e0b6f0cbe75b30f7 Mon Sep 17 00:00:00 2001 From: Enno Boland Date: Sun, 2 Jun 2024 14:54:56 +0200 Subject: [PATCH 3/3] inode_map: switch from flat malloc to a radix_tree --- libsqsh/include/sqsh_archive_private.h | 2 +- libsqsh/src/archive/inode_map.c | 47 ++++++++++++++++++-------- subprojects/cextras.wrap | 2 +- 3 files changed, 35 insertions(+), 16 deletions(-) diff --git a/libsqsh/include/sqsh_archive_private.h b/libsqsh/include/sqsh_archive_private.h index 0ee74a80..60e3f477 100644 --- a/libsqsh/include/sqsh_archive_private.h +++ b/libsqsh/include/sqsh_archive_private.h @@ -110,7 +110,7 @@ struct SqshInodeMap { */ const struct SqshInodeMapImpl *impl; sqsh__mutex_t *mutex; - uint_fast64_t *inode_refs; + struct CxRadixTree inode_refs; size_t inode_count; struct SqshExportTable *export_table; }; diff --git a/libsqsh/src/archive/inode_map.c b/libsqsh/src/archive/inode_map.c index 2f22317a..eee3ed51 100644 --- a/libsqsh/src/archive/inode_map.c +++ b/libsqsh/src/archive/inode_map.c @@ -113,11 +113,8 @@ dyn_map_init(struct SqshInodeMap *map, struct SqshArchive *archive) { } pthread_mutex_init(map->mutex, NULL); map->export_table = NULL; - map->inode_refs = calloc(inode_count, sizeof(uint_fast64_t)); - if (map->inode_refs == NULL) { - rv = -SQSH_ERROR_MALLOC_FAILED; - goto out; - } + + cx_radix_tree_init(&map->inode_refs, sizeof(uint64_t[256])); out: return rv; } @@ -127,7 +124,6 @@ static uint64_t dyn_map_get(const struct SqshInodeMap *map, uint32_t inode_number, int *err) { int rv = 0; uint64_t inode_ref = 0; - uint_fast64_t *inode_refs = map->inode_refs; if (inode_number == 0 || inode_number - 1 >= map->inode_count) { rv = -SQSH_ERROR_OUT_OF_BOUNDS; @@ -137,7 +133,18 @@ dyn_map_get(const struct SqshInodeMap *map, uint32_t inode_number, int *err) { if (rv < 0) { goto out; } - inode_ref = ~inode_refs[inode_number - 1]; + + sqsh_index_t index = inode_number - 1; + sqsh_index_t inner_index = index & 0xff; + sqsh_index_t outer_index = index >> 8; + + uint_fast64_t *inner_inode_refs = + cx_radix_tree_get(&map->inode_refs, outer_index); + if (inner_inode_refs == NULL) { + rv = -SQSH_ERROR_NO_SUCH_ELEMENT; + goto out; + } + inode_ref = ~inner_inode_refs[inner_index]; if (inode_ref == EMPTY_INODE_REF) { rv = -SQSH_ERROR_NO_SUCH_ELEMENT; inode_ref = 0; @@ -159,8 +166,6 @@ static int dyn_map_set( struct SqshInodeMap *map, uint32_t inode_number, uint64_t inode_ref) { int rv = 0; - uint64_t old_value; - uint_fast64_t *inode_refs = map->inode_refs; if (inode_ref == EMPTY_INODE_REF) { return -SQSH_ERROR_INVALID_ARGUMENT; @@ -172,11 +177,25 @@ dyn_map_set( if (rv < 0) { return rv; } - old_value = ~inode_refs[inode_number - 1]; - inode_refs[inode_number - 1] = ~inode_ref; - if (old_value != EMPTY_INODE_REF && old_value != inode_ref) { - return -SQSH_ERROR_INODE_MAP_IS_INCONSISTENT; + + sqsh_index_t index = inode_number - 1; + sqsh_index_t inner_index = index & 0xff; + sqsh_index_t outer_index = index >> 8; + + uint_fast64_t *inner_inode_refs = + cx_radix_tree_get(&map->inode_refs, outer_index); + if (inner_inode_refs == NULL) { + uint64_t new_inner_inode_refs[256] = {0}; + new_inner_inode_refs[inner_index] = ~inode_ref; + cx_radix_tree_put(&map->inode_refs, outer_index, new_inner_inode_refs); + } else { + const uint64_t old_value = ~inner_inode_refs[inner_index]; + inner_inode_refs[inner_index] = ~inode_ref; + if (old_value != EMPTY_INODE_REF && old_value != inode_ref) { + return -SQSH_ERROR_INODE_MAP_IS_INCONSISTENT; + } } + rv = sqsh__mutex_unlock(map->mutex); if (rv < 0) { return rv; @@ -192,7 +211,7 @@ export_table_cleanup(struct SqshInodeMap *map) { static int dyn_map_cleanup(struct SqshInodeMap *map) { - free(map->inode_refs); + cx_radix_tree_cleanup(&map->inode_refs); pthread_mutex_destroy(map->mutex); free(map->mutex); return 0; diff --git a/subprojects/cextras.wrap b/subprojects/cextras.wrap index 6ddaa165..772731a7 100644 --- a/subprojects/cextras.wrap +++ b/subprojects/cextras.wrap @@ -1,6 +1,6 @@ [wrap-git] directory = cextras -revision = 44e59a4d70efdafed930329241b711d2be302cd5 +revision = 908ea12a9cdbd1e52ddc45519fc19dc3743a893a url = https://github.com/Gottox/cextras.git depth = 1