From 0c8db8ee231838d4a94dd78d6a89e55f8f7ad2ff Mon Sep 17 00:00:00 2001 From: Syoyo Fujita Date: Thu, 31 May 2018 15:49:56 +0900 Subject: [PATCH] Hardened implementation(fix some seg faults, out-of-bound access) found by fuzzer. --- fuzzer/runner.py | 20 ++++++ tests/afl/README.txt | 17 +++++ ...:000000,sig:11,src:000000,op:havoc,rep:128 | Bin 0 -> 196 bytes ...d:000001,sig:11,src:000000,op:havoc,rep:64 | Bin 0 -> 389 bytes ...id:000002,sig:11,src:000000,op:havoc,rep:4 | 33 +++++++++ ...id:000003,sig:11,src:000000,op:havoc,rep:4 | 35 ++++++++++ ...id:000004,sig:11,src:000000,op:havoc,rep:2 | 34 ++++++++++ ...id:000005,sig:11,src:000000,op:havoc,rep:4 | Bin 0 -> 536 bytes ...:000006,sig:11,src:000000,op:havoc,rep:128 | Bin 0 -> 343 bytes ...d:000007,sig:11,src:000000,op:havoc,rep:32 | Bin 0 -> 471 bytes ...id:000008,sig:11,src:000000,op:havoc,rep:8 | Bin 0 -> 534 bytes ...:000009,sig:11,src:000000,op:havoc,rep:128 | Bin 0 -> 363 bytes ...d:000010,sig:11,src:000000,op:havoc,rep:16 | 29 ++++++++ ...id:000011,sig:11,src:000000,op:havoc,rep:8 | 33 +++++++++ ...d:000012,sig:06,src:000000,op:havoc,rep:32 | Bin 0 -> 443 bytes ...id:000013,sig:11,src:000093,op:havoc,rep:4 | 32 +++++++++ ...d:000014,sig:11,src:000093,op:havoc,rep:64 | Bin 0 -> 381 bytes ...id:000015,sig:11,src:000093,op:havoc,rep:2 | 33 +++++++++ ...id:000016,sig:11,src:000093,op:havoc,rep:8 | Bin 0 -> 505 bytes ...id:000017,sig:11,src:000093,op:havoc,rep:4 | 30 +++++++++ ...:000018,sig:06,src:000141,op:flip1,pos:449 | 33 +++++++++ ...ig:06,src:000141,op:arith8,pos:446,val:+13 | 33 +++++++++ ...:000020,sig:06,src:000141,op:havoc,rep:128 | Bin 0 -> 199 bytes ...id:000021,sig:06,src:000141,op:havoc,rep:4 | 35 ++++++++++ ...:000022,sig:11,src:000141,op:havoc,rep:128 | Bin 0 -> 261 bytes ...:000023,sig:11,src:000141,op:havoc,rep:128 | Bin 0 -> 530 bytes ...:000024,sig:11,src:000141,op:havoc,rep:128 | Bin 0 -> 270 bytes ...id:000025,sig:11,src:000141,op:havoc,rep:4 | 32 +++++++++ ...:000026,sig:11,src:000141,op:havoc,rep:128 | Bin 0 -> 283 bytes ...:000027,sig:11,src:000141,op:havoc,rep:128 | Bin 0 -> 238 bytes ...d:000028,sig:06,src:000253,op:havoc,rep:32 | Bin 0 -> 175 bytes ...d:000029,sig:11,src:000263,op:havoc,rep:64 | Bin 0 -> 246 bytes ...d:000030,sig:11,src:000263,op:havoc,rep:64 | Bin 0 -> 175 bytes ...d:000031,sig:11,src:000263,op:havoc,rep:32 | Bin 0 -> 261 bytes ...d:000032,sig:11,src:000263,op:havoc,rep:32 | Bin 0 -> 235 bytes ...d:000033,sig:06,src:000266,op:havoc,rep:32 | Bin 0 -> 350 bytes ...d:000034,sig:06,src:000266,op:havoc,rep:32 | Bin 0 -> 314 bytes ...d:000035,sig:11,src:000271,op:havoc,rep:16 | Bin 0 -> 389 bytes ...d:000036,sig:11,src:000271,op:havoc,rep:32 | Bin 0 -> 397 bytes ...id:000037,sig:11,src:000271,op:havoc,rep:8 | Bin 0 -> 417 bytes ...d:000038,sig:11,src:000271,op:havoc,rep:32 | Bin 0 -> 379 bytes ...id:000039,sig:11,src:000271,op:havoc,rep:8 | Bin 0 -> 374 bytes ...d:000040,sig:11,src:000271,op:havoc,rep:64 | Bin 0 -> 365 bytes ...d:000041,sig:11,src:000271,op:havoc,rep:32 | Bin 0 -> 268 bytes ...d:000042,sig:11,src:000271,op:havoc,rep:16 | Bin 0 -> 394 bytes ...d:000043,sig:11,src:000308,op:havoc,rep:32 | Bin 0 -> 278 bytes ...d:000044,sig:11,src:000308,op:havoc,rep:16 | Bin 0 -> 254 bytes ...:000045,sig:06,src:000352,op:flip1,pos:334 | Bin 0 -> 387 bytes ...:000046,sig:11,src:000352,op:flip2,pos:299 | Bin 0 -> 387 bytes ...d:000047,sig:06,src:000352,op:havoc,rep:16 | Bin 0 -> 431 bytes ...id:000048,sig:11,src:000352,op:havoc,rep:4 | Bin 0 -> 387 bytes ...d:000049,sig:11,src:000352,op:havoc,rep:16 | Bin 0 -> 359 bytes ...id:000050,sig:11,src:000352,op:havoc,rep:8 | Bin 0 -> 401 bytes ...d:000051,sig:11,src:000352,op:havoc,rep:64 | Bin 0 -> 341 bytes ...d:000052,sig:11,src:000352,op:havoc,rep:16 | Bin 0 -> 391 bytes ...d:000053,sig:11,src:000352,op:havoc,rep:16 | Bin 0 -> 401 bytes ...d:000054,sig:06,src:000352,op:havoc,rep:64 | Bin 0 -> 277 bytes ...d:000055,sig:11,src:000352,op:havoc,rep:32 | Bin 0 -> 326 bytes ...d:000056,sig:06,src:000352,op:havoc,rep:64 | Bin 0 -> 457 bytes ...d:000057,sig:11,src:000382,op:havoc,rep:32 | Bin 0 -> 291 bytes ...d:000058,sig:11,src:000382,op:havoc,rep:32 | Bin 0 -> 411 bytes ...id:000059,sig:06,src:000406,op:havoc,rep:8 | Bin 0 -> 545 bytes ...d:000060,sig:11,src:000408,op:havoc,rep:32 | Bin 0 -> 441 bytes ...d:000061,sig:11,src:000449,op:havoc,rep:64 | Bin 0 -> 285 bytes ...d:000062,sig:06,src:000465,op:havoc,rep:16 | Bin 0 -> 132 bytes ...d:000063,sig:06,src:000465,op:havoc,rep:64 | Bin 0 -> 77 bytes ...d:000064,sig:06,src:000478,op:havoc,rep:64 | Bin 0 -> 244 bytes ...d:000065,sig:06,src:000478,op:havoc,rep:32 | Bin 0 -> 305 bytes ...id:000066,sig:11,src:000515,op:havoc,rep:4 | Bin 0 -> 327 bytes ...id:000067,sig:11,src:000518,op:havoc,rep:8 | Bin 0 -> 288 bytes ...id:000068,sig:06,src:000532,op:havoc,rep:8 | Bin 0 -> 312 bytes ...d:000069,sig:06,src:000532,op:havoc,rep:64 | Bin 0 -> 353 bytes ...d:000070,sig:06,src:000557,op:havoc,rep:16 | Bin 0 -> 549 bytes ...d:000071,sig:11,src:000570,op:havoc,rep:32 | Bin 0 -> 267 bytes ...d:000072,sig:06,src:000584,op:havoc,rep:16 | Bin 0 -> 175 bytes ...d:000073,sig:06,src:000584,op:havoc,rep:32 | Bin 0 -> 150 bytes ...d:000074,sig:06,src:000584,op:havoc,rep:32 | Bin 0 -> 203 bytes ...id:000075,sig:06,src:000584,op:havoc,rep:2 | Bin 0 -> 149 bytes ...000076,sig:06,src:000602,op:ext_AO,pos:117 | Bin 0 -> 308 bytes ...d:000077,sig:06,src:000602,op:havoc,rep:64 | Bin 0 -> 357 bytes ...d:000078,sig:06,src:000602,op:havoc,rep:16 | Bin 0 -> 329 bytes tests/tester.cc | 25 +++++++ tiny_obj_loader.h | 63 ++++++++++++++++-- 83 files changed, 512 insertions(+), 5 deletions(-) create mode 100644 fuzzer/runner.py create mode 100644 tests/afl/README.txt create mode 100644 tests/afl/id:000000,sig:11,src:000000,op:havoc,rep:128 create mode 100644 tests/afl/id:000001,sig:11,src:000000,op:havoc,rep:64 create mode 100644 tests/afl/id:000002,sig:11,src:000000,op:havoc,rep:4 create mode 100644 tests/afl/id:000003,sig:11,src:000000,op:havoc,rep:4 create mode 100644 tests/afl/id:000004,sig:11,src:000000,op:havoc,rep:2 create mode 100644 tests/afl/id:000005,sig:11,src:000000,op:havoc,rep:4 create mode 100644 tests/afl/id:000006,sig:11,src:000000,op:havoc,rep:128 create mode 100644 tests/afl/id:000007,sig:11,src:000000,op:havoc,rep:32 create mode 100644 tests/afl/id:000008,sig:11,src:000000,op:havoc,rep:8 create mode 100644 tests/afl/id:000009,sig:11,src:000000,op:havoc,rep:128 create mode 100644 tests/afl/id:000010,sig:11,src:000000,op:havoc,rep:16 create mode 100644 tests/afl/id:000011,sig:11,src:000000,op:havoc,rep:8 create mode 100644 tests/afl/id:000012,sig:06,src:000000,op:havoc,rep:32 create mode 100644 tests/afl/id:000013,sig:11,src:000093,op:havoc,rep:4 create mode 100644 tests/afl/id:000014,sig:11,src:000093,op:havoc,rep:64 create mode 100644 tests/afl/id:000015,sig:11,src:000093,op:havoc,rep:2 create mode 100644 tests/afl/id:000016,sig:11,src:000093,op:havoc,rep:8 create mode 100644 tests/afl/id:000017,sig:11,src:000093,op:havoc,rep:4 create mode 100644 tests/afl/id:000018,sig:06,src:000141,op:flip1,pos:449 create mode 100644 tests/afl/id:000019,sig:06,src:000141,op:arith8,pos:446,val:+13 create mode 100644 tests/afl/id:000020,sig:06,src:000141,op:havoc,rep:128 create mode 100644 tests/afl/id:000021,sig:06,src:000141,op:havoc,rep:4 create mode 100644 tests/afl/id:000022,sig:11,src:000141,op:havoc,rep:128 create mode 100644 tests/afl/id:000023,sig:11,src:000141,op:havoc,rep:128 create mode 100644 tests/afl/id:000024,sig:11,src:000141,op:havoc,rep:128 create mode 100644 tests/afl/id:000025,sig:11,src:000141,op:havoc,rep:4 create mode 100644 tests/afl/id:000026,sig:11,src:000141,op:havoc,rep:128 create mode 100644 tests/afl/id:000027,sig:11,src:000141,op:havoc,rep:128 create mode 100644 tests/afl/id:000028,sig:06,src:000253,op:havoc,rep:32 create mode 100644 tests/afl/id:000029,sig:11,src:000263,op:havoc,rep:64 create mode 100644 tests/afl/id:000030,sig:11,src:000263,op:havoc,rep:64 create mode 100644 tests/afl/id:000031,sig:11,src:000263,op:havoc,rep:32 create mode 100644 tests/afl/id:000032,sig:11,src:000263,op:havoc,rep:32 create mode 100644 tests/afl/id:000033,sig:06,src:000266,op:havoc,rep:32 create mode 100644 tests/afl/id:000034,sig:06,src:000266,op:havoc,rep:32 create mode 100644 tests/afl/id:000035,sig:11,src:000271,op:havoc,rep:16 create mode 100644 tests/afl/id:000036,sig:11,src:000271,op:havoc,rep:32 create mode 100644 tests/afl/id:000037,sig:11,src:000271,op:havoc,rep:8 create mode 100644 tests/afl/id:000038,sig:11,src:000271,op:havoc,rep:32 create mode 100644 tests/afl/id:000039,sig:11,src:000271,op:havoc,rep:8 create mode 100644 tests/afl/id:000040,sig:11,src:000271,op:havoc,rep:64 create mode 100644 tests/afl/id:000041,sig:11,src:000271,op:havoc,rep:32 create mode 100644 tests/afl/id:000042,sig:11,src:000271,op:havoc,rep:16 create mode 100644 tests/afl/id:000043,sig:11,src:000308,op:havoc,rep:32 create mode 100644 tests/afl/id:000044,sig:11,src:000308,op:havoc,rep:16 create mode 100644 tests/afl/id:000045,sig:06,src:000352,op:flip1,pos:334 create mode 100644 tests/afl/id:000046,sig:11,src:000352,op:flip2,pos:299 create mode 100644 tests/afl/id:000047,sig:06,src:000352,op:havoc,rep:16 create mode 100644 tests/afl/id:000048,sig:11,src:000352,op:havoc,rep:4 create mode 100644 tests/afl/id:000049,sig:11,src:000352,op:havoc,rep:16 create mode 100644 tests/afl/id:000050,sig:11,src:000352,op:havoc,rep:8 create mode 100644 tests/afl/id:000051,sig:11,src:000352,op:havoc,rep:64 create mode 100644 tests/afl/id:000052,sig:11,src:000352,op:havoc,rep:16 create mode 100644 tests/afl/id:000053,sig:11,src:000352,op:havoc,rep:16 create mode 100644 tests/afl/id:000054,sig:06,src:000352,op:havoc,rep:64 create mode 100644 tests/afl/id:000055,sig:11,src:000352,op:havoc,rep:32 create mode 100644 tests/afl/id:000056,sig:06,src:000352,op:havoc,rep:64 create mode 100644 tests/afl/id:000057,sig:11,src:000382,op:havoc,rep:32 create mode 100644 tests/afl/id:000058,sig:11,src:000382,op:havoc,rep:32 create mode 100644 tests/afl/id:000059,sig:06,src:000406,op:havoc,rep:8 create mode 100644 tests/afl/id:000060,sig:11,src:000408,op:havoc,rep:32 create mode 100644 tests/afl/id:000061,sig:11,src:000449,op:havoc,rep:64 create mode 100644 tests/afl/id:000062,sig:06,src:000465,op:havoc,rep:16 create mode 100644 tests/afl/id:000063,sig:06,src:000465,op:havoc,rep:64 create mode 100644 tests/afl/id:000064,sig:06,src:000478,op:havoc,rep:64 create mode 100644 tests/afl/id:000065,sig:06,src:000478,op:havoc,rep:32 create mode 100644 tests/afl/id:000066,sig:11,src:000515,op:havoc,rep:4 create mode 100644 tests/afl/id:000067,sig:11,src:000518,op:havoc,rep:8 create mode 100644 tests/afl/id:000068,sig:06,src:000532,op:havoc,rep:8 create mode 100644 tests/afl/id:000069,sig:06,src:000532,op:havoc,rep:64 create mode 100644 tests/afl/id:000070,sig:06,src:000557,op:havoc,rep:16 create mode 100644 tests/afl/id:000071,sig:11,src:000570,op:havoc,rep:32 create mode 100644 tests/afl/id:000072,sig:06,src:000584,op:havoc,rep:16 create mode 100644 tests/afl/id:000073,sig:06,src:000584,op:havoc,rep:32 create mode 100644 tests/afl/id:000074,sig:06,src:000584,op:havoc,rep:32 create mode 100644 tests/afl/id:000075,sig:06,src:000584,op:havoc,rep:2 create mode 100644 tests/afl/id:000076,sig:06,src:000602,op:ext_AO,pos:117 create mode 100644 tests/afl/id:000077,sig:06,src:000602,op:havoc,rep:64 create mode 100644 tests/afl/id:000078,sig:06,src:000602,op:havoc,rep:16 diff --git a/fuzzer/runner.py b/fuzzer/runner.py new file mode 100644 index 0000000..0c06d4b --- /dev/null +++ b/fuzzer/runner.py @@ -0,0 +1,20 @@ +import os, sys +import glob +import subprocess + +def main(): + for g in glob.glob("../tests/afl/id*"): + print(g) + + cmd = ["../a.out", g] + + proc = subprocess.Popen(cmd) + try: + outs, errs = proc.communicate(timeout=15) + print(outs) + except TimeoutExpired: + proc.kill() + outs, errs = proc.communicate() + + +main() diff --git a/tests/afl/README.txt b/tests/afl/README.txt new file mode 100644 index 0000000..b557d9b --- /dev/null +++ b/tests/afl/README.txt @@ -0,0 +1,17 @@ +Command line used to find this crash: + +afl-fuzz -i in -o out ./test_loader @@ + +If you can't reproduce a bug outside of afl-fuzz, be sure to set the same +memory limit. The limit used for this fuzzing session was 50.0 MB. + +Need a tool to minimize test cases before investigating the crashes or sending +them to a vendor? Check out the afl-tmin that comes with the fuzzer! + +Found any cool bugs in open-source tools using afl-fuzz? If yes, please drop +me a mail at once the issues are fixed - I'd love to +add your finds to the gallery at: + + http://lcamtuf.coredump.cx/afl/ + +Thanks :-) diff --git a/tests/afl/id:000000,sig:11,src:000000,op:havoc,rep:128 b/tests/afl/id:000000,sig:11,src:000000,op:havoc,rep:128 new file mode 100644 index 0000000000000000000000000000000000000000..55cc9af2a249edd349b89146d89c89b5384e0178 GIT binary patch literal 196 zcmYj{Ar1mD5JjsC7r=eM5JYEMc3A>u4GF;zG;%{_9jljc5$=LTzy*2-PEe+R;3xBE z=KViLb2=ZDdL{K0tVyX;Z79Ho``I9jbsKP#X9cc!@~B)VgmbKSK^jvYsd_72Hb6xr zSDkf`x$KD?dOFM~-eZjZPx8k2%r@{>l%zJM1QtXk8~=la(H?MXvP;Z~tmH%S50v!= DG^RMG literal 0 HcmV?d00001 diff --git a/tests/afl/id:000001,sig:11,src:000000,op:havoc,rep:64 b/tests/afl/id:000001,sig:11,src:000000,op:havoc,rep:64 new file mode 100644 index 0000000000000000000000000000000000000000..859bbf1733970e74fb867c5e00f54d7adfd289d5 GIT binary patch literal 389 zcmY*Uu?|5|484NohQY$Xa1s-V*LOYdl1O|EL1G{xBqj!{gP}gW?ttB;_nCS6Hm;Vdt|bPLtdz zjzsY9ybKLz&M>u)g(~Ep+%IUwgR9neEQ~RrIxr;a11U$lU>B|27pI&hI#6-Yc~nPq zNnt6=*sGJYiIV&!$?}ge#YX}QjEGV+eU};t`vbko(Gv}Rn*ODbCi*%$DsdQlw+`6l G#FXA6!(d|o literal 0 HcmV?d00001 diff --git a/tests/afl/id:000002,sig:11,src:000000,op:havoc,rep:4 b/tests/afl/id:000002,sig:11,src:000000,op:havoc,rep:4 new file mode 100644 index 0000000..ba3835a --- /dev/null +++ b/tests/afl/id:000002,sig:11,src:000000,op:havoc,rep:4 @@ -0,0 +1,33 @@ +# cube.obj +# + +} cube + +v d.0 0.0 0.0 +v 0.0 0.0 1.0 +v 0.0 1.0 0.0 +v 0.0 1.0 1.0 +v 1.0 0.0 0.0 +v 1.0 0.0 1.0 +v 1.0 1.0 0.0 +v 1.0 1.0 1.0 + +vn 0.0 0.0 1.0 +vn 0.0 0.0 -1.0 +vn 0.0 1.0 0.0 +vn 0.0 -1.0 0.0 +vn 1.0 0.0 0.0 +vn -1.0 0.0 0.0 + +f 1//2 7//2 5//2 +f 1//2 3//2 7//2 +f 1/6 4//6 3//6 +f 1//6 2//6 4//6 +f 3//3 8//3 7//3 +f 3//3 4//3 8//3 +f 5//5 7//5 8//5 +f 5//5 8//5 6//5 +f 1//4 5//4 55555555555555 6//4 +f 1//4 6//4 2//4 +f 2//1 6//1 8//1 +f 2//1 8//1 4//1 diff --git a/tests/afl/id:000003,sig:11,src:000000,op:havoc,rep:4 b/tests/afl/id:000003,sig:11,src:000000,op:havoc,rep:4 new file mode 100644 index 0000000..9b18387 --- /dev/null +++ b/tests/afl/id:000003,sig:11,src:000000,op:havoc,rep:4 @@ -0,0 +1,35 @@ +# cube.obj +# + 4 +f 1//4 6//4 2//4 +f +g cube + +v 0.0 0.0 +v 0.0 0.0 1.0 +v 0.0 1.0 0.0 +v 0.0 1.0 1.0 +v 1.0 0.0 0.0 +v 1.0 0.0 1.0 +v 1.0 1.0 0.0 +v 1.0 1.0 1.0 + +n 0.0 0.0 1.0 +vn 0.0 0.0 -1.0 +vn 0.0 1.0 0.0 +vn 0.0 -1.0 0.0 +vn 1.0 0.0 0.0 +vn -1.0 0.0 0.0 + +f 1//2 7//2 5//2 +f 1//2 3//2 7//2 +f 1//6 4//6 3//6 +f 1//6 2//6 4//6 +f 3//3 8//3 7//3 +f 3//3 4//3 8//3 +f 5//5 7//5 //5 +f 5//5 8//5 6//5 +f 1//4 5//4 6//4 +f 1//4 6//4 2//4 +f 2//1 6//1 8//1 +f 2//1 8//1 4//1 diff --git a/tests/afl/id:000004,sig:11,src:000000,op:havoc,rep:2 b/tests/afl/id:000004,sig:11,src:000000,op:havoc,rep:2 new file mode 100644 index 0000000..a3303f9 --- /dev/null +++ b/tests/afl/id:000004,sig:11,src:000000,op:havoc,rep:2 @@ -0,0 +1,34 @@ +# cube.ob7//3 +f 3//3 4//3 8//3j +# + +g cube + +v 0.0 0.0 0.0 +v 0.0 0.0 1.0 +v 0.0 1ÿ0 0.0 +v 0.0 1.0 1.0 +v 1.0 0.0 0.0 +v 1.0 0.0 1.0 +v 1.0 1.0 0.0 +v 1.0 1.0 1.0 + +vn 0.0 0.0 1.0 +vn 0.0 0.0 -1.0 +vn 0.0 1.0 0.0 +vn 0.0 -1.0 0.0 +vn 1.0 0.0 0.0 +vn -1.0 0.0 0.0 + +f 1//2 7//2 5//2 +f 1//2 3//2 7//2 +f 1//6 4//6 3//6 +f 1//6 2//6 4//6 +f 3//3 8//3 7//3 +f 3//3 4//3 8//3 +f 5//5 7//5 8//5 +f 5//5 8//5 6//5 +f 1//4 5//4 6//4 +f 1//4 6//4 2//4 +f 2//1 6//1 8//1 +f 2//1 8//1 4//1 diff --git a/tests/afl/id:000005,sig:11,src:000000,op:havoc,rep:4 b/tests/afl/id:000005,sig:11,src:000000,op:havoc,rep:4 new file mode 100644 index 0000000000000000000000000000000000000000..d7ea3a3586fda748ca8ea261ab3977f1911e6582 GIT binary patch literal 536 zcmY+9I}XAy5Jah6afFdl6FXlhIZF^AQGh7O`I(($?Igv>`}TRgsc`#E_xdxvLKP66 zDtVZJRHqVq(A3Gn@vv$Rz$PpV=yl~`N%HOGrg za(f{N4?YoN3!Ir(49vp1+;MRP`WTsPjT_je-6ut&4Wruu7bTzRbZ>!lyk#bzAG8XS l{vdOKDlt0b(!G2pVeh+miPj+xjT|P2Gzec<*Gu~$!att*U)BHs literal 0 HcmV?d00001 diff --git a/tests/afl/id:000006,sig:11,src:000000,op:havoc,rep:128 b/tests/afl/id:000006,sig:11,src:000000,op:havoc,rep:128 new file mode 100644 index 0000000000000000000000000000000000000000..7468dd9df9631ea1393bb9ecb0d2c1512de5c29c GIT binary patch literal 343 zcmY*UyH3ME5L_&(D^Ti)VkBzc+}Vyz86<=RNGbRNl$g*Ux`4a$hwynw6np@pTJ{V| z#8&gzo!vddX15;wu)bf4gL_Wz)6sRGG=J}5@z%-h&z&aOXdPm37@Iae&BcOUqW}m3oHREeO W-5%ao@Lm4u4oOuR=eXi$FYX89lt~f* literal 0 HcmV?d00001 diff --git a/tests/afl/id:000007,sig:11,src:000000,op:havoc,rep:32 b/tests/afl/id:000007,sig:11,src:000000,op:havoc,rep:32 new file mode 100644 index 0000000000000000000000000000000000000000..911d3218e94aca6cce4728060a407cdc1de99592 GIT binary patch literal 471 zcmY+BF;c@Y5Jkm6nyu()eUbG6^Bg`1+oLmN!LvYjLO3LHtnc^dGVT}8 zwW{@&sOvlfYe2PiW@>($tJOa_zhM5sMpyrXz6spoctf~71M{!00bv8#+MG|ez+z2p g9r7Vm(~?h+45n`ywyJbg7Q$V)mL)&5Qq>aj3nUy`(EtDd literal 0 HcmV?d00001 diff --git a/tests/afl/id:000008,sig:11,src:000000,op:havoc,rep:8 b/tests/afl/id:000008,sig:11,src:000000,op:havoc,rep:8 new file mode 100644 index 0000000000000000000000000000000000000000..28b34ddd32e359a4d0bc57e32059bcaf395112de GIT binary patch literal 534 zcmZvXOAf*?5JOo<9KuqUh$iU|4!}u@0Eq>xsJI6Q2G1nZv=Uvo$+KtbRye=LOZ^=0 zu5xfUz49;tp$C3xQ9w$3H!_~-PIknt0ZF*&kxQI%un;M@m(bfX zc@N8FB6j{ZiCvU@n3?UAfx7~|_dRe>J$l~=i+lsEDxF4ygagp2(i#@9DVB`WZ2>N$ za=g`Kf*d#N&&T^kBaXAzAgYzZ;_<%I;#3AYYhqWhPl7x|%}}{8YBE8+%I^^V0KO$) AzW@LL literal 0 HcmV?d00001 diff --git a/tests/afl/id:000009,sig:11,src:000000,op:havoc,rep:128 b/tests/afl/id:000009,sig:11,src:000000,op:havoc,rep:128 new file mode 100644 index 0000000000000000000000000000000000000000..797b8658669807c58658a64f4bcc2e37538fe5c3 GIT binary patch literal 363 zcmYk1u}T9$5QaCX%@he71Pc*AiG@YHnZ3(uN`sFfq9&q{;s}W8B&mHEpUd6{IA;xq zZt?HTz-nP zIb$1w$$LZYyB9*}%I=SjlXY{7ZQ4xpy$w^ zwQ2=dS>^GNs7Nm#n+(UvICfKRx*@D`q<_GtjCG*)|GXEf$yqr-Hgdl+;=}I~Zxb_* lntVtVRVR>k>O06Me*2fD@wzun8j(AwbP%B^3Rh3!!ymd#N5}vG literal 0 HcmV?d00001 diff --git a/tests/afl/id:000010,sig:11,src:000000,op:havoc,rep:16 b/tests/afl/id:000010,sig:11,src:000000,op:havoc,rep:16 new file mode 100644 index 0000000..f74ccdd --- /dev/null +++ b/tests/afl/id:000010,sig:11,src:000000,op:havoc,rep:16 @@ -0,0 +1,29 @@ +# cube.obj +# + +g +v 0.0 0.0 0.0 +v 0.0 0.0 1,0 +T 0.0 1.0 0.0 +v 4.0 1c0 1.0 +v 1.0 0.0 0.0 +v 1.0 0.0 1.0 +v 1.0 1.0 0.0 +v 1.0 1.0 /////////////////////////////.0 0.0 -1.0 +vn 0.0 1.0 0.0 +vÿ 0.0 -1.0 0.0 +vn 1.0 0.0 0.0 +vn -1.0 0.0 0.0 + +f 1//2 7//2 5//2 +f 1//2 3//2 7//2 +f 1//6 4//6 3//6 +f 1//6 2//6 4//6 +f 3//3 8//3 7//3 +f 3//3 4//3 8K/31 +f/6 4//6 3//6 +f 1//6 2 5//5 7//5 8//5 +f 5//5 8//5 6//5" +f 1//4 5//4 2222222222224f 1//2 7//2 5 6//4 2//4 +f 3//1 6//1 8//1 +f 2//1 8//1 4//1 diff --git a/tests/afl/id:000011,sig:11,src:000000,op:havoc,rep:8 b/tests/afl/id:000011,sig:11,src:000000,op:havoc,rep:8 new file mode 100644 index 0000000..721700d --- /dev/null +++ b/tests/afl/id:000011,sig:11,src:000000,op:havoc,rep:8 @@ -0,0 +1,33 @@ +# cube.obj +# + +g cube + +v 0.0 0.0 0.0 +v 0.0 0.0 1.0 +v 0.0 1.0 0.0 +v 0.0 1.0 1.0 +v 1.0 0.0 0.0 +v 1.0 0.0 1.0 +v 1.0 1.0 0.0 +v 1.0 1.0 1.0 + +vn 0.0 0.0 1.0 +vn 0ƒ0 0.0 -1.0 +vn 0.0 1.0 00 +vn 0.0 -Ê.0 0.0 +vn 1. 0.0 0.0 +vn -1.0 0.0 0.0 + +f 1//2 7//2 5//2 +f 1//2 3//2 7//2 +f 1//6 40000000000000000vvvvvvvvvvvvvvvv00000080000000//6 3//6 +f 1//6 2//6 4//6 +f 3//3 8//3 7//3 +f 3//3 4//3 8//3 +f 5//5 7//5 8//5 +f 5//5 8//5 6//5 +f 1//4 56//4 +f 1//4 6//4 2//4 +f 2//1 6//1 8//1 +f 2//1 8//1 4//1 diff --git a/tests/afl/id:000012,sig:06,src:000000,op:havoc,rep:32 b/tests/afl/id:000012,sig:06,src:000000,op:havoc,rep:32 new file mode 100644 index 0000000000000000000000000000000000000000..3cd82af14f7c792cf7af10409d931caf30278ae1 GIT binary patch literal 443 zcmaKmI}XAy42C`D3=BrykcgA?K?jb&DauP?C<~M|r)EMbwi8NOsH#8q=ht80{@xw! zwY!+YpgC*G!GP$j`--`xcYC5U{(Bd%0=gV)&vHN{H3z5xKYT6X{d literal 0 HcmV?d00001 diff --git a/tests/afl/id:000013,sig:11,src:000093,op:havoc,rep:4 b/tests/afl/id:000013,sig:11,src:000093,op:havoc,rep:4 new file mode 100644 index 0000000..d7a8d48 --- /dev/null +++ b/tests/afl/id:000013,sig:11,src:000093,op:havoc,rep:4 @@ -0,0 +1,32 @@ +# cube.obj +# + +g cube + +v 0.0 0.0 0.0 +v 0.0 0.0 1.0 +v 0.0 1.0 0.0 +v 0.0 1.0 1.0 +v 1.0 0.0 0.0 +v 1.0 0.0 1.0 +v 1.0 1.0 0.0 +v 1.0 1.0 1.0 + +vn 0.0 0.0 1.0 +vn 0.0 0.0 -1.0 +vn 0.0 1.0 0.0 +vn 0.0 -1.0 0.0 +vn 1.0 0.0 0. +vn -1.0 0.0 0.0 + +f 1//2 7//2 5//2 +f 1//2 3//2 7//2 +f 1//6 4//6 3//6 +f 1//6 2//6 4//6 +f 3//3 8//3 7//3 +f 3//3 4//3 08//3 +f 5//5 7//5 8//5!Šf 5//5 8//5 6//5 +f 1//4 5//4 65555//4 +f 1//4 6//4 2//4 +f 2//1 6//1 8//1 +f 2//1 8//1 4//1 diff --git a/tests/afl/id:000014,sig:11,src:000093,op:havoc,rep:64 b/tests/afl/id:000014,sig:11,src:000093,op:havoc,rep:64 new file mode 100644 index 0000000000000000000000000000000000000000..64a36436ff8e0746defc1f3c9b19564c6e60b33f GIT binary patch literal 381 zcmZ`#y9xq93|z4bh$0*!hzwX*h?{#Wb{6)6_ygyou+YkDwH80Z!rtGq^ApzWo(EdE zMVKTrlVN*U9kY!-WIO874<;Yr2($$v7J%5*F$dbG1K`(%AXt#DQI6%MeD{lPxD~xj z^;vKn(JDLn-YR@!j5a6F^CE=Isk2Yz%E(^%9R2Nz2xfts^~qZ&YaY6otM9RaC;VCq9hkS0QGPbiRtnWwmfzIP;735AF&fubn3 zVH3oR-Tc*)FIZaxeU@b>w5%g*R!4M$9pJ5{(&`deD^yF8bQ@q$?L{MGCRhSFu;p-7 s=G*gchl5YfjkSh4QR(E`Ui+zpK7o1#cUmC}hi!4raGG49Ugb-Kf4#L^HUIzs literal 0 HcmV?d00001 diff --git a/tests/afl/id:000017,sig:11,src:000093,op:havoc,rep:4 b/tests/afl/id:000017,sig:11,src:000093,op:havoc,rep:4 new file mode 100644 index 0000000..27853f1 --- /dev/null +++ b/tests/afl/id:000017,sig:11,src:000093,op:havoc,rep:4 @@ -0,0 +1,30 @@ +# cube.obj +# + +g cuvP 0.0 0.0 .0 +v 0.0 0.0 1.0 +v 0.0 1.0 0.0 +v 0.0 1.0 1.0 +v 1.0 0.0 0.0 +v 1.0 0.0 1.0 +v 1.0 1.0 0.0 +v 1.0 1.0 1.0 + +vn 0.0 0.0 1.0 +vn 0.0 0.0 -1.0 +vn 0.0 1.0 0.0 +vn 0.0 -1.0 0.0 +vn 1.0 0.0 0.0 +vn -1.0 0.0 0.0 + +f 1//2 7//2 5//2 +f 1//2 3//2 7//2 +f 1//6 4//6 3//6 +f 1//6 2//6 4//6 +f 3//3 8//3 7//3 +f 3//3 4//3 8//3 +f 5//5 7//5 8//5!Šf 5//5 8//5 6//5 +f 1//4 5//4 6//4 +f 1//4 6666666666666666//4 2//4 +f 2//1 6//1 8//1 +f 2//1 8//1 4//1 diff --git a/tests/afl/id:000018,sig:06,src:000141,op:flip1,pos:449 b/tests/afl/id:000018,sig:06,src:000141,op:flip1,pos:449 new file mode 100644 index 0000000..97dd9b6 --- /dev/null +++ b/tests/afl/id:000018,sig:06,src:000141,op:flip1,pos:449 @@ -0,0 +1,33 @@ +# cube.obj +# + +g cube + +v 0.0 0.0 0.0 +v 0.0 0.0 1.0 +v 0.0 1.0 0.0 +v 0.0 1.0 1.0 +v 1.0 0.0 0.0 +v 1.0 0.0 1.0 +v 1.0 1.0 0.0 +v 1.0 1.0 1.0 + +vn 0.0 0.0 1.0 +vn 0.0 0.0 -1.0 +vn 0.0 1.0 0.0 +vn 0.0 -1.0 0.0 +vn 1.0 0.0 0.0 +vn -1.0 0.0 0.0 + +f 1//2 7//2 5//2 +f 1//2 3//2 7//2 +f 1//6 4//6 3//6 +f 1//6 2//6 4//6 +f 3//3 8//3 7//3 +f 3//3 4//3 8//3 +f 5//5 7//5 8//5 +f 5//5 8//5 6//5 +t 1//4 5/-4 6//4 +f 1//4 6//4 2//4 +f 2//1 6//1 8//1 +f 2//1 8//1 4//1 diff --git a/tests/afl/id:000019,sig:06,src:000141,op:arith8,pos:446,val:+13 b/tests/afl/id:000019,sig:06,src:000141,op:arith8,pos:446,val:+13 new file mode 100644 index 0000000..36d1a9a --- /dev/null +++ b/tests/afl/id:000019,sig:06,src:000141,op:arith8,pos:446,val:+13 @@ -0,0 +1,33 @@ +# cube.obj +# + +g cube + +v 0.0 0.0 0.0 +v 0.0 0.0 1.0 +v 0.0 1.0 0.0 +v 0.0 1.0 1.0 +v 1.0 0.0 0.0 +v 1.0 0.0 1.0 +v 1.0 1.0 0.0 +v 1.0 1.0 1.0 + +vn 0.0 0.0 1.0 +vn 0.0 0.0 -1.0 +vn 0.0 1.0 0.0 +vn 0.0 -1.0 0.0 +vn 1.0 0.0 0.0 +vn -1.0 0.0 0.0 + +f 1//2 7//2 5//2 +f 1//2 3//2 7//2 +f 1//6 4//6 3//6 +f 1//6 2//6 4//6 +f 3//3 8//3 7//3 +f 3//3 4//3 8//3 +f 5//5 7//5 8//5 +f 5//5 8//5 6//5 +t 1//4 -5//4 6//4 +f 1//4 6//4 2//4 +f 2//1 6//1 8//1 +f 2//1 8//1 4//1 diff --git a/tests/afl/id:000020,sig:06,src:000141,op:havoc,rep:128 b/tests/afl/id:000020,sig:06,src:000141,op:havoc,rep:128 new file mode 100644 index 0000000000000000000000000000000000000000..dd76e6b88fb70dc55202362e0bae5dbb0803f8c0 GIT binary patch literal 199 zcmXwzuMWa65XQS8ND5gdKw&;d&3Zl7vI!I(5(J9i7M@_iZqJ9}F_1`HxkC1d`}4am zcc-twa_$;BRd}C^T{uzzYLfVAh`e=xi!lxWTW5+~-;IgYsMyEEfyH`wti+mXwsnR; zN~uCR|5NxUXQ4`NWpoJ8-99pvz85ojOt-D>FynM8(Q2gPeqI21hoNu4CL@}>q|aH_ H3pM%+h|?@n literal 0 HcmV?d00001 diff --git a/tests/afl/id:000021,sig:06,src:000141,op:havoc,rep:4 b/tests/afl/id:000021,sig:06,src:000141,op:havoc,rep:4 new file mode 100644 index 0000000..363002a --- /dev/null +++ b/tests/afl/id:000021,sig:06,src:000141,op:havoc,rep:4 @@ -0,0 +1,35 @@ +# cube.obj +# + +g cube + +v 0.0 0.0 0.0 +v 0.0 0.0 1.0 +v 0.0 1.0 0.0 +v 0.0 1.0 1.0 +v 1.0 0.0 0.0 +v 1.0 0.0 1.0 +v 1.0 1.0 0.0 +v 1.0 1.0 1.0 + +vn 0.0 0.0 !.0 +vn 0.0 0.0 -1.0 +vn 0.0 1.0 0.0 +vn 0.0 8//5 6//5 +t 1//4 -1.0 0.0 +vn 1.0 0.0 0.0 +f 3//3 8//3 7//3 +f 3//3 +vn -1.0 0.0 0.0 + +f 1//2 7//2 5//2 +f 1//2 3//2 7//2 +f 1//6 4//6 3//6 +f 1//6 2//6 4//6 +f 3//3 8//3 7//3 +f 3//3 4//3 8//3 +f 5//5 7//5 8//5 +f 5//5 8//5 6//5 +t 1//4 5//4 6//4 +f 1//4 6//4 2//4 f 2//1 6//1 8//1 +f 2//1 8//1 4//1 diff --git a/tests/afl/id:000022,sig:11,src:000141,op:havoc,rep:128 b/tests/afl/id:000022,sig:11,src:000141,op:havoc,rep:128 new file mode 100644 index 0000000000000000000000000000000000000000..7516f640e3998150993d32f50ff9009cbb999ea0 GIT binary patch literal 261 zcmYk0v2Ma(41~>AnT4TJ#R7+rDkP*_O!NOhhYEp2q&`4jpixF9nz=(4o}_PAb_RkI zGV}&pw!S-iiq9{FRzzLbPe_3|(!`r}HIUiZxmjFFFMHU4R0o|y`4^SOaTtqHSTKYHEvV|7FlJx4?3oUJ87BR|5cSg#$ pNKatl{$`f*#Sh~xEZKd4b=>Y<|4z=Nv55?|74S+L;F-U*L2qc^GhhG! literal 0 HcmV?d00001 diff --git a/tests/afl/id:000023,sig:11,src:000141,op:havoc,rep:128 b/tests/afl/id:000023,sig:11,src:000141,op:havoc,rep:128 new file mode 100644 index 0000000000000000000000000000000000000000..0de93b1ee563a72dd5d0a9929ffb657393233f7f GIT binary patch literal 530 zcmaJ+u};G<6m(U>U?fz*z=GgVKvY8b*=YzJI=}#8$WTIFqpB(mXeC;O zJDwGHM(F}?jE>nvpp}*{Oy{1c1+vJ&k3G}81uX-oM~4YO`WL~cGM+Umf)FC(`qTc- z+vi#KIAJOFIgPA;&lc(uL7U@s7MXQHIxedkv_xQSAcy(3(*v(cuecppBvW2MoOC%L z5eMuM?ZT73jW(8=a?|*XQKo_FO@)}!4(Yk*I3HL$w(L60LE#pN76kfp&I#7jdfNRl zJ^1*)w7dt7iDF=tz#FWYS&8YI#5K=&5X(G|$cUNXlFI;NMtXkNbhB8@l0RM{dT&tVbOnX5#vWWEE=;S8^ z8Q_?S+AS0J^Yac#3d~Fae&%5xvOWr_%Jm|x2U&HIFgvC;4Xnw~&d`9_J78LozY-YX YZ<)nUX7jboPt}s{eN!F+#Otl|KU4HarvLx| literal 0 HcmV?d00001 diff --git a/tests/afl/id:000025,sig:11,src:000141,op:havoc,rep:4 b/tests/afl/id:000025,sig:11,src:000141,op:havoc,rep:4 new file mode 100644 index 0000000..e981347 --- /dev/null +++ b/tests/afl/id:000025,sig:11,src:000141,op:havoc,rep:4 @@ -0,0 +1,32 @@ +# cube.obj +# + +g cube + +v 0.0 0.0 0.0 +v 0.0 0.0 1.0 +v 0.0 1.0 0.0 +v 0.0 1.0 1.0 +v Ï1.0 0.0 0.0 +v 1.0 0.0 1.0 +v 1.0 1.0 0.0 +v 1.0 1.0 1.0 + +vn 0.0 0.0 1.0 +vn 0.0 0.0 -1.0 +vn 0.0 1.0 +vn 1.0 0.0 0.0 +vn -1.0 0.0 0.0 + +f 1//2 7//2 5//2 +f 1//2 3//2 7//2 +f 1//6 4//6 3//6 +f 1//6 2//6 4//6 +f 3//3 8//3 7//3 +f 3//3 4//3 811111//3 +f 5//5 7//5 8//5 +f 5//5 8//5 6//5 +t 1//4 5//4 6//4 +f 1//4 6//4 2//4 +f 2B/1 6//1 8//1 +f 2//1 8//1 4//1 diff --git a/tests/afl/id:000026,sig:11,src:000141,op:havoc,rep:128 b/tests/afl/id:000026,sig:11,src:000141,op:havoc,rep:128 new file mode 100644 index 0000000000000000000000000000000000000000..51f9db97328864ccbb113f8a4686a7126a97253a GIT binary patch literal 283 zcmZvVy$ZrW5QGHS4}R*P;>^cG80br8%#(?NS10v-P{W3b3 zZmclFlEcj@+L_aYfhp2Jl+aTVLs6*9P4SO5`|d1%Wy*-$*d+;kSa_h8LmVI>+p6Bk RV+H2Bb+qqJv43H9B3~+{D%t=5 literal 0 HcmV?d00001 diff --git a/tests/afl/id:000028,sig:06,src:000253,op:havoc,rep:32 b/tests/afl/id:000028,sig:06,src:000253,op:havoc,rep:32 new file mode 100644 index 0000000000000000000000000000000000000000..f16231ff2e03305b5d7e2e2b83f562400df95e7e GIT binary patch literal 175 zcmY%9OfF5y(92gyE=@||;^CTRz`(*_pl85UqOBmnYoMS2VwWi>aFr-1@V_$9>r&7) zuLp|csWbjlfT#xP1hUHv^kf)-8ej~tHU>Qg0bL)6hUNf01F)H)3Wf@B@Pe6v0m#u% m&{K0z;D2bq#lXNY`+NF-h^Yz+3=HB5JZ2IK`ub-223!DgohGyZ literal 0 HcmV?d00001 diff --git a/tests/afl/id:000029,sig:11,src:000263,op:havoc,rep:64 b/tests/afl/id:000029,sig:11,src:000263,op:havoc,rep:64 new file mode 100644 index 0000000000000000000000000000000000000000..c4f22655fe67827f8b017cf11380bb074897bf72 GIT binary patch literal 246 zcmZuqy$ZrG7>q&@GIe(Gz@I^+U)tDOHy2lZ1*x_LMO{q5sUUqTpUS~GChb^nI6m&a zyHmO9;(1UtAbJDlXG0MPVB!d(d9Awvb!oMAAWjJLKFiL0{2fh8995QcSU0hG3(pwO z*AE~JOohrA13SRA!%fc^`)u@8zgmqV>_VbBAc>NN+h{KE!WP^qNw*|{W#l*|k`-eN PF;Tpty)2#a{$~_FQ0qxh literal 0 HcmV?d00001 diff --git a/tests/afl/id:000030,sig:11,src:000263,op:havoc,rep:64 b/tests/afl/id:000030,sig:11,src:000263,op:havoc,rep:64 new file mode 100644 index 0000000000000000000000000000000000000000..8754c7241440545dc886cee7ae90f50bfbb6bacc GIT binary patch literal 175 zcmY#ZNajjcNG?sf_+No5Qb9pkAvrTC)hRzIg^T~|)-n*#)H85kU|=v(&@%ucuChD@ z1%v+v3c7|szQT2oNQr`ip$d>=pl9$GL~w!im6ZuIFnmBY!Y{Q`&rn~|OhLg|U*8O9 q2v9Z15FkfG!5T;^aHRna%Lkh;YoKqcpkToSw471@|Ns9D3TXhMye_N& literal 0 HcmV?d00001 diff --git a/tests/afl/id:000031,sig:11,src:000263,op:havoc,rep:32 b/tests/afl/id:000031,sig:11,src:000263,op:havoc,rep:32 new file mode 100644 index 0000000000000000000000000000000000000000..b5d815ec345297438bcdd13b660bf394c928574f GIT binary patch literal 261 zcmZurK?=e^49vlki1h4fKo1o($x^!Q2mFZAdb76$pWqvOsi!)vPz5_=$*`H3WQ)uF z+-SG)=7C`9fcL#f0$4#^;XB7MDw!YpFhQa__m)s@OZgye(6*s3*3n?0LLt!&?MOi7~v literal 0 HcmV?d00001 diff --git a/tests/afl/id:000032,sig:11,src:000263,op:havoc,rep:32 b/tests/afl/id:000032,sig:11,src:000263,op:havoc,rep:32 new file mode 100644 index 0000000000000000000000000000000000000000..6560430de6b54394f2d8b6b2b01d643fe0beeb6d GIT binary patch literal 235 zcmZuqF$%&!5M0ITsx*q&WFU=AZa2onfFd@2!3RWCut*v`uuA?Qf8+tCqNoO7_9|(X;J0^;MpU(<`dEO*b;<@yhs-y8W0e*3Q~+$ z_T9nj22i<>;$LiM((-LHO-1Hzj145?V0)A?JOguzIA$JBv2?pS+P;$0Y}?ciU_Rm) Y$Sha%Zv2Ef0Tzzg34IPDsYO}a4-r;0h5!Hn literal 0 HcmV?d00001 diff --git a/tests/afl/id:000033,sig:06,src:000266,op:havoc,rep:32 b/tests/afl/id:000033,sig:06,src:000266,op:havoc,rep:32 new file mode 100644 index 0000000000000000000000000000000000000000..9d5463262382575c339973833c7ad79d6f4adaf6 GIT binary patch literal 350 zcmZutI|>3p42{^O5-e)}HI~7vr8y=WZfm)w>N(AW@M;ZJV2$JOnn4TeAKv*Y(w@@;Iv>0c(l1e@G%3&(83MG(mBnv!c*-KV z6NYi4U?^ko%IbsYP^e7NcSJXuc%f>%_bc`5?&l}`BYB!H6tPGL7>l%lSUrOu2`WaV literal 0 HcmV?d00001 diff --git a/tests/afl/id:000034,sig:06,src:000266,op:havoc,rep:32 b/tests/afl/id:000034,sig:06,src:000266,op:havoc,rep:32 new file mode 100644 index 0000000000000000000000000000000000000000..1f2b3346d43f0fff6bde50149cb86488e3d80b10 GIT binary patch literal 314 zcmah^u?oUa3`{`~vN(2eI8cOwzUE00L=YD@f5M6t96H%94s~+$V;x1UFRiVkx4h(X zcgb7XZ5Hp%H9qoy!3XMOyEBjPVgv}v!j*Xs+6^m8_yiD9iHTK-knk-9Cksr&(1Kur zdQy#za9$I{30lpMUaQO*$V=bKrY@Msqq#u^S-Ne$0+hq{^#JE+*Kc$^g3zhRT`Ic@CGrXE? NYHzpvY$=u=^as-1M`Hj0 literal 0 HcmV?d00001 diff --git a/tests/afl/id:000036,sig:11,src:000271,op:havoc,rep:32 b/tests/afl/id:000036,sig:11,src:000271,op:havoc,rep:32 new file mode 100644 index 0000000000000000000000000000000000000000..752cb5ba9157276ed142921056b45c69ab3624e6 GIT binary patch literal 397 zcmaiwF;0R(5QRsi+K$@7Cs>e}e`k081&j?Ifp`HEKuj#`{9CT1C-VsKh9yE_!W6T+ znK$p-nGsfB%eVNt{0O6fbpmoszugTlDW=eUVwU5Jp98*uTThe}7EyyW*VfeZnhY#z zYfIs&<|d7sS=i7+)yA-=Bc;hzn}r6${|t0p(pj879p16ReOHkL5cv>yTVO)OIm!%} z?Y3s2C(fUuFU*EkTi{W(73qsis8T-VN`xBx{BggX&&Hy_9T#_fm;>zhc`p2q%knL; T{TZ0*yZ}Zkgbf!~ie`j8-g`~P literal 0 HcmV?d00001 diff --git a/tests/afl/id:000037,sig:11,src:000271,op:havoc,rep:8 b/tests/afl/id:000037,sig:11,src:000271,op:havoc,rep:8 new file mode 100644 index 0000000000000000000000000000000000000000..02535c287240784a034d42c56f3c9660f0064b25 GIT binary patch literal 417 zcmZutF-`+95L`kkKLMJNLV<+hUE7xnqT&gN4lZ|1B*A6zUAijS|B64mOZQYZ zn!CH#G0OAiDL(!&RcKKr^8`E$+A@-iunpbf9u7AS))=3^Wx8rcyL7~Y_`_Wz-(_;k z{*ZH+hznax#SujdaI0EGrXmZfl%t%945!5Nn(b1*W78bhWJ6CVER(wa(D(o7F6^Y} ZHLh4ut%vq|pk>)Wb_`p7yJ<8bd;=SBPtX7W literal 0 HcmV?d00001 diff --git a/tests/afl/id:000038,sig:11,src:000271,op:havoc,rep:32 b/tests/afl/id:000038,sig:11,src:000271,op:havoc,rep:32 new file mode 100644 index 0000000000000000000000000000000000000000..9303330701738cd3ca1ff544b40cb227e557c283 GIT binary patch literal 379 zcmZXQF-`+95JhK6DwkYHq{Efart!IHdXw5jkqKDZU9g5+`=w^`y?k)D`jI-i^4i z@F|y<0au`luN(q6zvUz-z%KU%a ffnIMtHn{xVAgfkDlR0+;a@IJpEpPvnZvgiL@g+_l literal 0 HcmV?d00001 diff --git a/tests/afl/id:000039,sig:11,src:000271,op:havoc,rep:8 b/tests/afl/id:000039,sig:11,src:000271,op:havoc,rep:8 new file mode 100644 index 0000000000000000000000000000000000000000..95fcb6d37f17843f391eecb053673a85bab3d789 GIT binary patch literal 374 zcmaJ-yG{c!5L}W}{)&;VK|<&CD|aU<8hXSJASEP`Ql#VBK{4M%26tZS?OyO!Tj&$>MJ@ zqia6FysRPfWDrVlaC<(jn$Y!zSQGEuBhqss*H7n^+=5N0c36oavSwgV%_1w2HC-A9 zl?RboB`#~WS?!I_5`Hgc74jL|um60To&VSzUBgZf9OikdvkTVB3(#Gp0Etoj2xnG` GM!0Xb-bIA~ literal 0 HcmV?d00001 diff --git a/tests/afl/id:000040,sig:11,src:000271,op:havoc,rep:64 b/tests/afl/id:000040,sig:11,src:000271,op:havoc,rep:64 new file mode 100644 index 0000000000000000000000000000000000000000..b94a2efe89c8884c4f15aec74dff8bd55f3063d6 GIT binary patch literal 365 zcmZ8dF-`+95L_UY8yZAIGeCm`@$Pa?LO}&wj}R{)Q4~>J$8|{e3?2Y2UyH;8Fk^>M zu*KNxot<6JDS$b?OTeN*zpTBp-&nBN#z9uEE5_L4L+Crib$7_PtW0`I8)=#p3T}D6LQYOlAlUR9s55!=~Hk3 literal 0 HcmV?d00001 diff --git a/tests/afl/id:000041,sig:11,src:000271,op:havoc,rep:32 b/tests/afl/id:000041,sig:11,src:000271,op:havoc,rep:32 new file mode 100644 index 0000000000000000000000000000000000000000..4198c8a994268e4d4748f2a69efedbd7a21345c9 GIT binary patch literal 268 zcmZWkJqyAx5Ixc9KyVZsd{RL{+Dp>ff`3M6YXt`vF}V5D<0Tyw%M zEUkz`-9*Gukq7Olbq{xPZi6Pg9nnm`BdH-ksgq8VN$*zr%KV(Pf>eU_*A_ylu|H?* QIWBuehppF5;_O!V1LcD<$N&HU literal 0 HcmV?d00001 diff --git a/tests/afl/id:000042,sig:11,src:000271,op:havoc,rep:16 b/tests/afl/id:000042,sig:11,src:000271,op:havoc,rep:16 new file mode 100644 index 0000000000000000000000000000000000000000..d88a631567318269d5d1244eb8302c19f3f3c7b7 GIT binary patch literal 394 zcmZ9IJ#ND=422oT6Q^d*@&I=zP*jp-#V$Je2u*u{0{I&evX>HgcMqym=b|a*ZYPR88=C@yH!{ilh`P~;nZ!%&3GppTt?7SaxsKEhdaqKroKHz)L{d!_Hnyi3H=_TXVAo}W c_gLbwBioC0(r30nEuDa!e1r8I*L)Dr{XIVu1E literal 0 HcmV?d00001 diff --git a/tests/afl/id:000044,sig:11,src:000308,op:havoc,rep:16 b/tests/afl/id:000044,sig:11,src:000308,op:havoc,rep:16 new file mode 100644 index 0000000000000000000000000000000000000000..4fd833a2de0bdd053c7b642cee7b00caa844cda7 GIT binary patch literal 254 zcmYk0F$%&!5JgwhO(VfV5Q~qBVByY2M~Rh%jUb5N5ftsTOPgFk@ERV(yLbxYUn>{( zGt9g{e^fWi=^#CtnXBruuAP4;sSi>>GE~loPD?I_fa>x51RnrO$dSb|^FwjXh!RZR zEMmWRibFXI{|k<<*wZ$mfhlI8nh;ncq~o%<{wy4ub(~yiWDswOS1?I#Ttejj51Or1 r7vSo~7Io>GQvj=6yYnARoh8WnYQS8hE>v?Ew5@soa#gl=u(o^w`l>az literal 0 HcmV?d00001 diff --git a/tests/afl/id:000045,sig:06,src:000352,op:flip1,pos:334 b/tests/afl/id:000045,sig:06,src:000352,op:flip1,pos:334 new file mode 100644 index 0000000000000000000000000000000000000000..d4d0c08dc012af4cc4a0a4178455308cbdf8c0d6 GIT binary patch literal 387 zcmZutyGjHx6ul#CliI?y@q%bKImztIZa`rdt1VU#wy_RkYa^DLZ}7ML2tPpZ2Q1=A zX13A`3HNc%xsP*sH7}}H)~UMk?RJidRD&3AVvPFjY+w$9YDidNse1aT>RF3%!*}g% zA(6wZb;s?;oKmx#XH}G?i@go>n-S-;hWj~^5PPKQx6#Tc;GhoSPxTk+nTbHND|d40Q!pOzbw9a lCc^!(F^_Hkrfo>n#fB1-B`)Q8w>nY}+Tn`m^a#nT`2}65SakpZ literal 0 HcmV?d00001 diff --git a/tests/afl/id:000046,sig:11,src:000352,op:flip2,pos:299 b/tests/afl/id:000046,sig:11,src:000352,op:flip2,pos:299 new file mode 100644 index 0000000000000000000000000000000000000000..51fc6d30918feec5fe8b11cde3469f29b6443ddd GIT binary patch literal 387 zcmZutyG{c!5ZpsbRF3%#dqy( zA(6wZb%)cBV@geOo>WnmF19w%Zw8#tBI4nSa;v&PWgoS`ZO%!)@~JLuH5NXd!Cgi5 zWHmr*esX>v*#FK2l-7_&WQNE6$g@iXPTgbJuB1u%o0O%^7|D68W n+Y=G)kEtnn+;p#skf@6lB}PkJ%JXh@qz<(G718Pel2`K!iRxJR literal 0 HcmV?d00001 diff --git a/tests/afl/id:000047,sig:06,src:000352,op:havoc,rep:16 b/tests/afl/id:000047,sig:06,src:000352,op:havoc,rep:16 new file mode 100644 index 0000000000000000000000000000000000000000..561bd723309a6843e64b0801e2ffadd859944057 GIT binary patch literal 431 zcmaJ-u}TCn5S}>i}1--Ogzs!8sR7Ajaz$BM#0E8fO58#Gdm9bmR)=8Su*e z!9;-9su;I=8gGlF$}82nW8SuaFo;M)w&pYEH#!_nwc9M`I*0Nv?(CrNW-Rtu>7M9W zwN6^{Cg&s{`3xIdp^0~As(Sxdeerw#4wygcJfyaqQ5umYpXzFwT3&L{Y~Z->UYEM( zCQQxk+LTg}B!IoDpW;Q~>;11U>_(^5xP4MxZdGDJ(xvF#kbpRam3_dz5vO! BVsHQe literal 0 HcmV?d00001 diff --git a/tests/afl/id:000048,sig:11,src:000352,op:havoc,rep:4 b/tests/afl/id:000048,sig:11,src:000352,op:havoc,rep:4 new file mode 100644 index 0000000000000000000000000000000000000000..0c65a40bcc024dd1c6f75db7df4900a7c8abd6a9 GIT binary patch literal 387 zcmZutJxYWz5S>rhCbi&C;{(xd^OA4B?0%rI%T^XE2sYM1Y;D9+a|Tc1Jv@X55WIjz zoFu!AIFKPT^WMyxIh7al3|v?TxZ*Y&r-@X97}qgId^&;prdm3?wWI#KhVxlOJYDJB0}EF6VNYJ?oa8H?U}>vq;nNx3 zR8&w_NA~6?=eNfGR~K1EQ#z3uA9s>x=NwgaVB6zfx4GjoY=_&aDJzL2Ilwj`hl*D} s_hEo}QiS_s@2=%}HN1jj(!N{)O}@2Bm-2eIDrunF?uzWO$K+vt0e$pX_5c6? literal 0 HcmV?d00001 diff --git a/tests/afl/id:000049,sig:11,src:000352,op:havoc,rep:16 b/tests/afl/id:000049,sig:11,src:000352,op:havoc,rep:16 new file mode 100644 index 0000000000000000000000000000000000000000..e5268489e39841c44de68a972229666c56a01e97 GIT binary patch literal 359 zcmZvYJ&Hmx6osQ;lX@D(;(#!nImz=q4a_jgR8zQssl#AvBbJ(7xd`{-1_a~1Ph}81 zMYw+__e(}*XScwI^MH?XESFvi8D1(WeW#Rg@-9k^4G=SDoMJRsajkJm3z_%~PEFzg zBzzkm`_4ZJb|WqR)O(L!DLtK4i@LvBxB3x^F($B-+#xG_E*GcD6&Yl??mxU#Rw@i{ zP#R9&8CO8V8}*;C|8m~U*n+yTm1Zy|8{nRhbvrNhC-gS?=Lch!+qe+pT@O6!%W8@q LKg9}N<^X#I1UX$6 literal 0 HcmV?d00001 diff --git a/tests/afl/id:000050,sig:11,src:000352,op:havoc,rep:8 b/tests/afl/id:000050,sig:11,src:000352,op:havoc,rep:8 new file mode 100644 index 0000000000000000000000000000000000000000..0c195164427b6eaa9f2dcf2c9ba2a95517f36730 GIT binary patch literal 401 zcmZXPy-EZz6ou~y3zFJGtqzFWZB8;f;|3IVvD#t<(Z)K6t&ND4<{5k~AHoL^d;yDi zli5+h0}09f`8elDp3Nh0Y8~Lpwb?i=B)HBY#`72>KAjC(V-GwfE_ebQ-T_{FF|PES zd0UngpjGSkW^V_In&dpGP;DJw+o11enDbdgJY6BTz=Cyqza=knPV%t}ENzuG-ksrP zo$7U~m}I2B?-gs>V2MvBTtHz5#G6S`h#M literal 0 HcmV?d00001 diff --git a/tests/afl/id:000051,sig:11,src:000352,op:havoc,rep:64 b/tests/afl/id:000051,sig:11,src:000352,op:havoc,rep:64 new file mode 100644 index 0000000000000000000000000000000000000000..0435b498dfec6eac04321aba43fc646de4d4fbb4 GIT binary patch literal 341 zcmZWlJxc>Y5S>KQY$Jk|MR*_<7Pm8Z=DY<3!B|+Nvq_a=30jGTA7JC{|MCx6rLz%X zeH+9p9F|$;?VEXT_E6s33vlKQu#y%FBapU5jF&M+Y|IB@+5#zQr>9dK+yXJ4*WUgp z-|l{(l$quM685XLh~Pcv32^1jt#EYXd6QCSKBb)V=G8Yqr$j5=-2;M7az<@Kz&)|y z_RTcnFmU_`r5Ac<{<6x05 h9v0lJR-FOuHh0WBAI}5_EB4Pz;J-|@!B|rb_XED5REhuq literal 0 HcmV?d00001 diff --git a/tests/afl/id:000052,sig:11,src:000352,op:havoc,rep:16 b/tests/afl/id:000052,sig:11,src:000352,op:havoc,rep:16 new file mode 100644 index 0000000000000000000000000000000000000000..8628a0b1a1844bce8f16d80c4b83657b92923b46 GIT binary patch literal 391 zcmZvYu}VZS5JhK&ZBkiSs33bmwAiolT7C1-Z_>hCk1Cd0HLPMCb&mrI}F2W7zTUQ z2Ow%;04;sko4y_>YFx_LpgMbU?UU9cU*U*FL?S~aH$YFj-ET-7-r=&8EbnE4g}2b= zTX4LxmvwSUHtw^Omo4Fsw!Ugp1R`0#r;J2qyZ0))U$24LDU)_py?MFSe8WX&0w(ZN yS4Ty%;OAgI|8rX%|HgI;Ja3=Dl$Fb+BEBOxMAY4xq?Q`pQQc&(KCr_a;l2Q~1X#KN literal 0 HcmV?d00001 diff --git a/tests/afl/id:000053,sig:11,src:000352,op:havoc,rep:16 b/tests/afl/id:000053,sig:11,src:000352,op:havoc,rep:16 new file mode 100644 index 0000000000000000000000000000000000000000..90da4b1d764d602a5e2bd82adfab4b3445e75e73 GIT binary patch literal 401 zcmY*V!Ab)$6nrbzL(U>9NC!)g%}bWuc0sY?sfUV!7tcZZ1>(`hU+}m52tPpZE*|0} zt+)>4k-WT_%w#0b<_S2n4sf|FmyV5C4k28H5JsQQcI;^jq_xg;3LLKh&$|#Vxz4@K zBy!lbZh!K2bmK5cDHc&)jqhy7eYKhMNkqIlP`L(XTG)rR>NPp?k%pMtmw&Js9D8?0 zZwsfTMx|Pt@04EE?e$!CvFB2?0oqbeay5@M>4=UQ*l%~Gix13puk&_m#ZJuX6ka3> ykPoEvbf(-7zkYSH)*m+dx@gup?m_;R9Ji55gcdKhaZ?&JO7Pv{R%`5N^e{gOd|&qf literal 0 HcmV?d00001 diff --git a/tests/afl/id:000054,sig:06,src:000352,op:havoc,rep:64 b/tests/afl/id:000054,sig:06,src:000352,op:havoc,rep:64 new file mode 100644 index 0000000000000000000000000000000000000000..63ab32a0044476ebf280354872360c4b639d842a GIT binary patch literal 277 zcmXX>K}rKb5bTwB89W3@Koqn<0*W}*yX+*31|m6mNd6#0$O}S_X5Qe@gPI1>JO4S6|Dk+X9bX0WGvxs5KI9OR-m3S;YW!i4zWh^EFV%IE!%{W1QBW-?pzF zm3ST8e?Sz+IiI|Adp&I)Fk#U{uOXK?C;7@(!3?9wWLPk?X9 PoB!|b>^hE^>bd&`8Vf)) literal 0 HcmV?d00001 diff --git a/tests/afl/id:000055,sig:11,src:000352,op:havoc,rep:32 b/tests/afl/id:000055,sig:11,src:000352,op:havoc,rep:32 new file mode 100644 index 0000000000000000000000000000000000000000..285ff73a2b72bb33dcfdb2ad0f0089758e1d397c GIT binary patch literal 326 zcmY*Uu}T9$5ZxfxEZA8X8y|{xH#2+O=C-gn#3DrmAx-KfoOIXWsZ;?uIg^HT$K z9G%&j8~>~N&QikITl_!FJlt}!Opy=7*60n@eupSWSUTpmsO(-$wSTtupcsxqDf7U~ ab^xc|MR0!udb2NWTQ=DGhkXH$0jGa`*-#Sz literal 0 HcmV?d00001 diff --git a/tests/afl/id:000056,sig:06,src:000352,op:havoc,rep:64 b/tests/afl/id:000056,sig:06,src:000352,op:havoc,rep:64 new file mode 100644 index 0000000000000000000000000000000000000000..329f32ab62a0486be1cae94ae2e8cde8b7ff32f0 GIT binary patch literal 457 zcmYk2u}T9$5QZm0P_8;K2$3j1(b%~&dnUO<#RMyh2!f5aM@VZE0ybvf)CW*3EmFA7 z?%inyb{1wnem>@e-u70&l@UNfo6W?uj7vZ+4))92vMli_mqqf5wFe5vIj4lf1-f0` zmE~05wKbAxk{G}m(>WKdo6sbUy=kWC6H${h1~7Ou=>QKuM=`*9U0W7>iOCQmUB-Ox zy`vAGU}9nkt=?r?QH4T0s>L)=#bBA+-tRIO3wXzxmsZGJ!6%-KXakIymvGM=Sd}|& z1mlkl)x;3VQuF5AH^yZ^UU6qq&G~M)M)qI9t`|{et4>6f&VlN*nZCDf6j2{i14=ET d-k*6ui7xnMD#b{Z_T($;*N|KktXoO{tiuo-UW zcIPq1@p>3!g6UmEPC&*vnFD)rif9%vuHY<7bnOl4BQqB8#`fU-T4Zzvtg)Q{dTnfc z3yk*-jh7?~Qm0|~UYfMl#XcOuqW8WI^sjeI08!I#fbEJJi4I6YHqL;2Ac~G$RL|1{ s1zASekp-a9iz?O@O6sUP#lM~wx}g0L-89nL(m~JErFkO%5LqDOH_BT)t^fc4 literal 0 HcmV?d00001 diff --git a/tests/afl/id:000058,sig:11,src:000382,op:havoc,rep:32 b/tests/afl/id:000058,sig:11,src:000382,op:havoc,rep:32 new file mode 100644 index 0000000000000000000000000000000000000000..730b4c5f3c66a7c6a427e282510788d46e8b3f4f GIT binary patch literal 411 zcmaJ+F-`+P4D`|;Adnb|E-33=Zts9EAR$4WDukp+5k$eY@D&~a52RVfdm$w* ztnqm4u`jTEd)oL@FQYGmt12woo__|_@g&3>RVt3nHHGOb2ak|>mG8Hh zC3k1^e_J3eT&LQ?zfh~1fi*q}I^fE3%-ZimyJx?ak%&Gx+^aow%}f$#ti0WaecBud lH)C%5?UoumbrH-(8$bBe(B-_wV`T8Yk|_ z5zQ*n`L32dIEeJVD-1oIdypL_7DomD4x_q*y%p!yrRK;FFTTcWxyC$oPbRG|=|D`* zX%^AjW&II9f4~&NAaY@i+Kv@uJ&8;qph8M^3FAOWNu5wfkt-|qjdX4h9+T7=Lx_A6 u75+%)202P1{4m{F5~NhlsdS~8L~l$M%|;ElK{P!*sCc2LbAuf9e}F&g5Mk#4 literal 0 HcmV?d00001 diff --git a/tests/afl/id:000060,sig:11,src:000408,op:havoc,rep:32 b/tests/afl/id:000060,sig:11,src:000408,op:havoc,rep:32 new file mode 100644 index 0000000000000000000000000000000000000000..c392671a9a2d7e8b5ee9dc97c865a146949571da GIT binary patch literal 441 zcmZ9H-AY4241`lD2z%ut3>1nWJvsk-E_|Ab3L^DJ3%%<@_`Y=}r`uBZVo1JCCdmpf zKik*pYx|K_3F$pj2792c>Z{y>rm8Q1ag-&%q9wq&!t9?%sXm>K79OP=EoYA}Yix9Lq$<3e3%rrrw^ zjzCWxp`70xFgbFaa|fP2xDNmusM9RcQ6PPXL$9i?eK|CB l2hKeFTYH=>>RU*WKo>@H{_`>D5WJjpkqua#?Ol}6?E_5YHR1pO literal 0 HcmV?d00001 diff --git a/tests/afl/id:000062,sig:06,src:000465,op:havoc,rep:16 b/tests/afl/id:000062,sig:06,src:000465,op:havoc,rep:16 new file mode 100644 index 0000000000000000000000000000000000000000..09ca5fc1283a399e23dd7a49423a29a5b0c7dea3 GIT binary patch literal 132 zcmXq3NUkj7Dl7SK7-h`Q@rj)S3KVn=6&e^AvdUQh|7T@TQ21ZZ07MMI!NCd!3T6sG zV5p$Lpl85UqM%Tw0937~##NRl|Ah-^SO!p1Ptk?JfU6j2vI0_^+UA_+P6(A8NINS6b#@h=7jT|-?@1>L9;sItfZ6&N8L&;JUK N;W`W&3=|j`7yvhz6(#@x literal 0 HcmV?d00001 diff --git a/tests/afl/id:000064,sig:06,src:000478,op:havoc,rep:64 b/tests/afl/id:000064,sig:06,src:000478,op:havoc,rep:64 new file mode 100644 index 0000000000000000000000000000000000000000..d08b6cf93127be603217ab5056c96da92ae964fa GIT binary patch literal 244 zcmY*TI|>3p42_>c2C=eGws~M7f;*WVWc{ErXYdGut(8tAi?*IdZ{aa4Y}R%!Fvdj@ zLrBOA@8beuz$YObH*6Pd6cN<0F#2+b(NC%r9$lj&)J=ba=1J`!xWRxq1uP3@1S6{D zuoj>&TDh5XE^&)+(sOn8pjvqB*N3-kwyku8I&F)okgC$r=cTVC$_3&il}$uPV2p-E h!l^G!Z>=)J+po-E|4Yp6Hx>a)<{mI&qAZv3J6@*wIOYHV literal 0 HcmV?d00001 diff --git a/tests/afl/id:000065,sig:06,src:000478,op:havoc,rep:32 b/tests/afl/id:000065,sig:06,src:000478,op:havoc,rep:32 new file mode 100644 index 0000000000000000000000000000000000000000..c264642578fba99a6e83d13f9fe531a4def283e2 GIT binary patch literal 305 zcmYk1y$S+B41{x*i^vs%?SOyyciCMJ;R<033kyN;1q2c8u99nPY<(G@%i3PfVF<4?&GB`_H#~Q4j4b4)!)oh zlnX%=MOnh^py60{=Ed A!~g&Q literal 0 HcmV?d00001 diff --git a/tests/afl/id:000066,sig:11,src:000515,op:havoc,rep:4 b/tests/afl/id:000066,sig:11,src:000515,op:havoc,rep:4 new file mode 100644 index 0000000000000000000000000000000000000000..9e3b2ce39e882ec15403a8be7c487ece56fb278c GIT binary patch literal 327 zcmZ9Hu}T9$5QfK`g-oM|MIavJC#KP2XE!F{x+H}}5X3jIFhr1GEaY0Zuodil1$_|T zC19C4Y-SED%oIDbF!TNYFLH(6X?}nAJUe9YygPwgE*>eSUm!ToFJNte*C!JBCh>!f zAKxT01c>&okzP~k0T`9i&>dU$CBpfMF}h3*uG;J1T84=f$@wN%HNTh{o#*-iUla%( z=>r3iuT5~ZqaT$Zs&4gm>TyJFvQPAut@5+?>d6>D--_HS%T<_{aK4Ct*uf4qsaE)3 h2z8R$kLBHs)KbP+O(`iegO@g=6aj`JHwT}`yaiNpM8N<6 literal 0 HcmV?d00001 diff --git a/tests/afl/id:000067,sig:11,src:000518,op:havoc,rep:8 b/tests/afl/id:000067,sig:11,src:000518,op:havoc,rep:8 new file mode 100644 index 0000000000000000000000000000000000000000..411ab4fcc43891e61902efa9ebcf18b2c40eafdd GIT binary patch literal 288 zcmZXPv1$Tg5QJAu^*4uDD5(alBIMsavmRFjj&KkJAqc*KN(2#2lOx?7q!ynluVL+5 zocjwG1h?2?W|sMud4kcPyZruI`Tb%;Rb2zI7gwMnFFkT=FR1*v-4RpwaG&NgCje1v ziXi(&`1if!n*1g^5Zzr8%FukM?7K$#vFFS`~wBInCC#s(QA-Cpj~$X DGbBEl literal 0 HcmV?d00001 diff --git a/tests/afl/id:000068,sig:06,src:000532,op:havoc,rep:8 b/tests/afl/id:000068,sig:06,src:000532,op:havoc,rep:8 new file mode 100644 index 0000000000000000000000000000000000000000..731f5e6b79a2e579552d427e10a22e938b35fbd3 GIT binary patch literal 312 zcmYjMJx{|h5WN(2u{yBA^aK@K{mvn6G9tP#bgNV`TZokfGE)BrekgyS!_`g`sc*QG zb??iM^6RkMsq2xT{#Ig?*BB%I)pxEJ6M^fu&<)wZeFH&9q;c--$I9k(+{`?aQ~T&$+_8_Qi+%ytq3>3^Ao##U9%9o^pWR# yQ{FFGHx?@0aF`lS1+Vsn$hYPQ4j$L)!dt5P3$O~QCPNMz`ZUZKqS;C{edG*tghiJC literal 0 HcmV?d00001 diff --git a/tests/afl/id:000069,sig:06,src:000532,op:havoc,rep:64 b/tests/afl/id:000069,sig:06,src:000532,op:havoc,rep:64 new file mode 100644 index 0000000000000000000000000000000000000000..4f76f889f127626e392642c965b1c5c0c17359e0 GIT binary patch literal 353 zcmZ{gF>V4e5Je3U6c#CIsJ=+5NV|W$f~*S)l8Pz?h#X*r($YX$e1&im4!~vT!v!eJ ztl1`!c+yz1XXgJIA2=KBKp$3P&;W4$vV{*U>H6%Lyu;&tOt-4cdnL-sI6X6sg{kie z*o`VS7R^)U@+BaxTG{#~6csT(htbG46YEI)CK;@^hQ)6&QS} z#$79Nl&ovZdZa4h1285s$M}m+PXE@3j;-li?q7eMQ(iQ{UHYqOQ>iLS+EZk%1<$%e LY2FI7864~tUyER; literal 0 HcmV?d00001 diff --git a/tests/afl/id:000070,sig:06,src:000557,op:havoc,rep:16 b/tests/afl/id:000070,sig:06,src:000557,op:havoc,rep:16 new file mode 100644 index 0000000000000000000000000000000000000000..7e97b7e9d2d17b5c1783f081b79c630bafcfa120 GIT binary patch literal 549 zcmZvYJx&8L6of4$QY1H&luSg;+MBEmWh6R|5kwlKq=Bt-1Fo4{Ec3?pE(Ml$?DxGN zkM|Mp-^Y*ca?F30haZ91MM;eDfnQrj`!3EE+gjFuTRX>!gVR=%8e|ph0Hlxy-Q58Wx!7WnAJ2T!i@E22swhO+`2Qcvk*gr%7lPq?-0p@wFi@E6NLV&MP) literal 0 HcmV?d00001 diff --git a/tests/afl/id:000071,sig:11,src:000570,op:havoc,rep:32 b/tests/afl/id:000071,sig:11,src:000570,op:havoc,rep:32 new file mode 100644 index 0000000000000000000000000000000000000000..c90f1c14d37f603c1b773599c0e18036dca7dfd7 GIT binary patch literal 267 zcmY+8y$ZrW5QMdp?NX^}91_7oa<`WYF(Qg~Vk2lHmc}2junDHH@&SA=A1m$!1f61T z*_&^7L*)0vNfn1Hg#`c7%kL}2^ukw$!#Xl6f(BS|y97A$0izg!7?s1i2B$hj3cHkt zj!Z^RDv>br9hy&xJKllfIumjenYHjY`DjTmGRpkOdhi#LkK!4u)-mv4It#C50TSn~ oeBY|dsLbU6i`tM3T*j`%|1V0XOrWj1LdPCP-EoY5N2b&M1A)gk<^TWy literal 0 HcmV?d00001 diff --git a/tests/afl/id:000072,sig:06,src:000584,op:havoc,rep:16 b/tests/afl/id:000072,sig:06,src:000584,op:havoc,rep:16 new file mode 100644 index 0000000000000000000000000000000000000000..ee3843abec336c3976c47422994977fa6bb020c1 GIT binary patch literal 175 zcmY#pN^W3aP*5o2RbUWcP~a-jSNPAJrq`*UpkSb9z*VLI6jHEI0ICoGa!Y^|ubx4u zoS_~_HeW$OsYF3dfI)!WAVGmEO%KGyr;xWqp%iQ`P_cp`#0czGf=#lpFt>mJ1qjsz E03CuM+yDRo literal 0 HcmV?d00001 diff --git a/tests/afl/id:000073,sig:06,src:000584,op:havoc,rep:32 b/tests/afl/id:000073,sig:06,src:000584,op:havoc,rep:32 new file mode 100644 index 0000000000000000000000000000000000000000..489001f1c1420f58a02388899b89aad2d8372200 GIT binary patch literal 150 zcmY#pN-pIpQAkDs9X_233JMkwprF72WkIO_|Nl3H8t55tl_@E3{byhh_+a3mz?G)g wDaW9~{6bHf%NeA?%O%vxP|pAp05#?-C@3k^D=_gY=o%`RF)+c6hgro10IJj`$N&HU literal 0 HcmV?d00001 diff --git a/tests/afl/id:000074,sig:06,src:000584,op:havoc,rep:32 b/tests/afl/id:000074,sig:06,src:000584,op:havoc,rep:32 new file mode 100644 index 0000000000000000000000000000000000000000..55f891283df8a905bb702106930c45c4d4e8e870 GIT binary patch literal 203 zcmX|*OA5k35JWrK2o1sHLVjAlTX@{=rvkau$MH&d!YWmN){^5eb3ggqwGN v0Z^}eA|sGAx}so5#(OKgE-v_@9l&5HB3YMZ1bf=|p(<-1HD5Z@=l}Qt3Bwzr literal 0 HcmV?d00001 diff --git a/tests/afl/id:000076,sig:06,src:000602,op:ext_AO,pos:117 b/tests/afl/id:000076,sig:06,src:000602,op:ext_AO,pos:117 new file mode 100644 index 0000000000000000000000000000000000000000..151e3148db2b3dc47e7cb4eaf98e71be7ae9d161 GIT binary patch literal 308 zcmZ`#y9&ZU5M04(5wQ?#ECzy#uiIQal0pOv8!Pb(gn$MttTasutpscT)E|g@TBwCv z47M1RF^axEzP|!AqZxnhVY9SxrV_zf&B9ZR>Z=rOF zL^E;UT8yn~!Mm5*f?(A~O{`hJPuIP#F6LkL%5oceuAv3zhYI-wO++i{qT^aV;ismE vRY62&v*d{qIYTu_3(f40tNQ>}BmxqUqV6017wVf|vObUqXp01Z)Bf@VWGF@a literal 0 HcmV?d00001 diff --git a/tests/afl/id:000077,sig:06,src:000602,op:havoc,rep:64 b/tests/afl/id:000077,sig:06,src:000602,op:havoc,rep:64 new file mode 100644 index 0000000000000000000000000000000000000000..971e9509e68d58f01ddf2ac41051d0731abbb461 GIT binary patch literal 357 zcmY+Au}T9$6h&W=Y7EPQhCqsNQLFDI!`YDH2Fh` z6#5D4oz=iP@b184&VBDrQB~DW)B;s8hSEn)M5*46CSCTrS!_R27+cBDv&%8xa>R}XiswKL$XD@zJ|uX>YVg#xTkwRa;l^35m>}m+VRMu+7``rN kn~%_P2Jw7|RJ9ID$M7-DM2+On&E$N>5I~fN_KXnP}aPS1uK8RpH#}i9~gHCNzP*C z+*|j246L>LMQ}9CqqXuB)XHAA^POtmY@i7`&_a`mBY>`H shapes; + std::vector materials; + + std::string err; + bool ret = tinyobj::LoadObj(&attrib, &shapes, &materials, &err, "./afl/id:000000,sig:11,src:000000,op:havoc,rep:128", gMtlBasePath); + + REQUIRE(true == ret); +} + +TEST_CASE("afl000001", "[AFL]") { + tinyobj::attrib_t attrib; + std::vector shapes; + std::vector materials; + + std::string err; + bool ret = tinyobj::LoadObj(&attrib, &shapes, &materials, &err, "./afl/id:000001,sig:11,src:000000,op:havoc,rep:64", gMtlBasePath); + + REQUIRE(true == ret); +} + #if 0 int main( diff --git a/tiny_obj_loader.h b/tiny_obj_loader.h index ac1421e..f1e14eb 100644 --- a/tiny_obj_loader.h +++ b/tiny_obj_loader.h @@ -23,6 +23,7 @@ THE SOFTWARE. */ // +// version 1.2.0 : Hardened implementation(#xxx) // version 1.1.1 : Support smoothing groups(#162) // version 1.1.0 : Support parsing vertex color(#144) // version 1.0.8 : Fix parsing `g` tag just after `usemtl`(#138) @@ -1023,12 +1024,17 @@ static bool exportFaceGroupToShape(shape_t *shape, for (size_t i = 0; i < faceGroup.size(); i++) { const face_t &face = faceGroup[i]; + size_t npolys = face.vertex_indices.size(); + + if (npolys < 3) { + // ??? Invalid face definition. + continue; + } + vertex_index_t i0 = face.vertex_indices[0]; vertex_index_t i1(-1); vertex_index_t i2 = face.vertex_indices[1]; - size_t npolys = face.vertex_indices.size(); - if (triangulate) { // find the two axes to work in size_t axes[2] = {1, 2}; @@ -1039,6 +1045,14 @@ static bool exportFaceGroupToShape(shape_t *shape, size_t vi0 = size_t(i0.v_idx); size_t vi1 = size_t(i1.v_idx); size_t vi2 = size_t(i2.v_idx); + + if (((3 * vi0 + 2) >= v.size()) || + ((3 * vi1 + 2) >= v.size()) || + ((3 * vi2 + 2) >= v.size())) { + // Invalid triangle. + // FIXME(syoyo): Is it ok to simply skip this invalid triangle? + continue; + } real_t v0x = v[vi0 * 3 + 0]; real_t v0y = v[vi0 * 3 + 1]; real_t v0z = v[vi0 * 3 + 2]; @@ -1075,6 +1089,13 @@ static bool exportFaceGroupToShape(shape_t *shape, i1 = face.vertex_indices[(k + 1) % npolys]; size_t vi0 = size_t(i0.v_idx); size_t vi1 = size_t(i1.v_idx); + if (((vi0 * 3 + axes[0]) >= v.size()) || + ((vi0 * 3 + axes[1]) >= v.size()) || + ((vi1 * 3 + axes[0]) >= v.size()) || + ((vi1 * 3 + axes[1]) >= v.size())) { + // Invalid index. + continue; + } real_t v0x = v[vi0 * 3 + axes[0]]; real_t v0y = v[vi0 * 3 + axes[1]]; real_t v1x = v[vi1 * 3 + axes[0]]; @@ -1099,8 +1120,15 @@ static bool exportFaceGroupToShape(shape_t *shape, for (size_t k = 0; k < 3; k++) { ind[k] = remainingFace.vertex_indices[(guess_vert + k) % npolys]; size_t vi = size_t(ind[k].v_idx); - vx[k] = v[vi * 3 + axes[0]]; - vy[k] = v[vi * 3 + axes[1]]; + if (((vi * 3 + axes[0]) >= v.size()) || + ((vi * 3 + axes[1]) >= v.size())) { + // ??? + vx[k] = static_cast(0.0); + vy[k] = static_cast(0.0); + } else { + vx[k] = v[vi * 3 + axes[0]]; + vy[k] = v[vi * 3 + axes[1]]; + } } real_t e0x = vx[1] - vx[0]; real_t e0y = vy[1] - vy[0]; @@ -1116,9 +1144,22 @@ static bool exportFaceGroupToShape(shape_t *shape, // check all other verts in case they are inside this triangle bool overlap = false; for (size_t otherVert = 3; otherVert < npolys; ++otherVert) { + size_t idx = (guess_vert + otherVert) % npolys; + + if (idx >= remainingFace.vertex_indices.size()) { + // ??? + continue; + } + size_t ovi = size_t( - remainingFace.vertex_indices[(guess_vert + otherVert) % npolys] + remainingFace.vertex_indices[idx] .v_idx); + + if (((ovi * 3 + axes[0]) >= v.size()) || + ((ovi * 3 + axes[1]) >= v.size())) { + // ??? + continue; + } real_t tx = v[ovi * 3 + axes[0]]; real_t ty = v[ovi * 3 + axes[1]]; if (pnpoly(3, vx, vy, tx, ty)) { @@ -1959,6 +2000,18 @@ bool LoadObj(attrib_t *attrib, std::vector *shapes, tag_sizes ts = parseTagTriple(&token); + if (ts.num_ints < 0) { + ts.num_ints = 0; + } + + if (ts.num_reals < 0) { + ts.num_reals = 0; + } + + if (ts.num_strings < 0) { + ts.num_strings = 0; + } + tag.intValues.resize(static_cast(ts.num_ints)); for (size_t i = 0; i < static_cast(ts.num_ints); ++i) {