aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore4
-rw-r--r--example/reader_util.c11
-rw-r--r--example/reader_util.h9
-rw-r--r--fuzz/Makefile.am46
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/030dd00584b897b53bb911b8eb9ed988ad41512bbin0 -> 5 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/0c98a57b0e288dda98038946bedb7f4f498c2ab9bin0 -> 13 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/11
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/101
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/10a91a2248f2b25b29d2fd4c06ffba567db5858b1
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/111
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/121
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/131
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/141
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/151
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/161
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/1c3e4e9f5eb1430b45a15b6df9580b0446381908bin0 -> 13 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/21
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/231f27621e60cc42c953ab6cc58cedb54a95fbc6bin0 -> 8 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/237cc011e3270d9ad91c0066c26b1d07f79df7f51
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/31
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/32ee88cc611eb5e2057d13d3a7df01d65175b7efbin0 -> 9 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/35220b50f5998387245b2d7c5ee06f64823cfb3d1
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/3caf6ff7a958dd5f6cc611a0b79857c1ceefb0961
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/41
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/51
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/535c91faaf0c9f9f3d9b6a5c1acee798aba924771
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/5728d7d6effbf8907786471d50ec131e80ebfdf0bin0 -> 10 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/59cf709399be499c5f24a1aabf348606cf37694b1
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/5eb995ab3aa553daa6e0a6d3690f1c72fb9e71cbbin0 -> 9 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/61
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/6e7fd6ebc1ab69ef3a5077ccbe3d69677fea1a091
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/71
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/7b8f11484a99cf70a6f7b4a0d1a5e753e11775e51
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/81
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/8ef6d0f838b137c837743eb02376351acf7c19cf1
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/91
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/95bbc11e22b6946a44b5115be1a4edd759051a6fbin0 -> 9 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/9c66e8fc4397f04b208f32a119f39cc4199d7934bin0 -> 10 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/a0509ba2816a7e772f4d27f616ac57994243a32e1
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/aee9fd2b3dc7c4b0892c1b0e759a58a47637acc22
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/b7ae8aa291fc5824c9d3291f2fb99cb8efd4d45c1
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/c259e771b237769cb6bce9a5ab734c576a6da3e1bin0 -> 9 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/d749a82ff4b833b3f96693aae60f310ed6c79d6e1
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/daad5285c5ce44e7d78003fa9f809dc779aace501
-rw-r--r--fuzz/corpus/fuzz_readerutils_parseprotolist/dc87035736d399babef7d1f0916462e52f1552c3bin0 -> 6 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/045156861f00553829a5e0cbf17b3fbc6b3184a4bin0 -> 28576 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/06b0090ca2144a82e8dcd75307675cb2e01f1759bin0 -> 7760 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/091cbf9eb7fa20a23bc04a7d80589505a4435412bin0 -> 9792 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/0a410dc67422675c2fad8660eee0b8ac5c1a15efbin0 -> 3566 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/0c111d4bd41d9a99b3a014c0655d00d5c144bf5fbin0 -> 51166 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/0e0e49a64d16130caf9f9fdeddfe978e977c54a5bin0 -> 15983 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/0eb2921ab7f0957bea5cd98abe6cdee25a712520bin0 -> 14414 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/13d90f9dc94015d7d001b24e33ccc36af6e3a28cbin0 -> 516 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/144d597e6a3e296309ad26ae196248f78c95004ebin0 -> 310544 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/14f36303dcb1ddc5c9d50b652b413fd2f82bbe35bin0 -> 1337 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/16c816553573fda3261eeaa83dbe982c0e1c0465bin0 -> 44892 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/18689ef1a0d1535612fb90c7c43225b9256c1b07bin0 -> 251712 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/19402f080783a8599655bf028e0a0167a3b62a01bin0 -> 538 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/19783d17080cfd6577e78f30fe427c731f3dc282bin0 -> 73944 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/19ae010065b811584bf631825abbe4ee91bb6349bin0 -> 406 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/1dacd1658b5eb37aee276aad6c294c85007018d6bin0 -> 22616 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/21bb2013aef110d86502e7ebd6a7545de0aa700dbin0 -> 104 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/21cff4abc294d8e86021f8f7107be726a2631c33bin0 -> 137707 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/27f6503940c09c5c492dc6dc26fb84e6da59ed74bin0 -> 14330 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/283ba432c52d4a6180dc79fb0dbe8ef528adcfa4bin0 -> 120451 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/288e55691b68c5282d2cdc8002d08e40b54fb0d1bin0 -> 21475 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/28fc12d63d2edb04a5fe6098a237dd14b875b4aebin0 -> 11351 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/2afa2a1fd17c1c56b8df2dc9bbc9a3d60965dbe4bin0 -> 6920 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/2b704968a5c5217c699a65d9852d5a50476e9a5ebin0 -> 368 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/2c0c09cacdc8c7a378df8fc4524ca8ff3b9ec11ebin0 -> 6603 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/2dcc7bfbade9de803d22746e4518840739b04c12bin0 -> 512 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/31d95208bb78564d490d089d3071a72297c7dac6bin0 -> 8294 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/335c27c825b7985231227b30065fbbaeb3c84be7bin0 -> 34493 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/33e0161c7cdf5277293f3ad3853c66396d2428ddbin0 -> 9227 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/3816909993b980e922fb6e8b76c9969ac537e122bin0 -> 22665 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/3b2002a3ff230dcfa1bf0db2ff4b0c51f389f1d0bin0 -> 37171 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/3deaac8fd4983089ded54b236189758f340e4d56bin0 -> 66796 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/3df610aafc02c53dd6ddf457f655a5cd0ed11f7abin0 -> 1325 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/3e0fda5ff341d1f07c7c09161dc1a36ae83445a9bin0 -> 182033 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/3f03d5c147f4f920ecb76439432d98b7118ee94dbin0 -> 20170 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/3ffaa9c46f3e82f6f092ce3eb553eb9c6eb6d2d8bin0 -> 23469 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/40ae20f03b8bb5caf710b768fc5748bdf3ed7cc6bin0 -> 26360 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/418f987f15ab6b70b6c7e116ba900dc0a6c0e780bin0 -> 15542 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/43eb12ac4719e9fb3999a88b5a0d3a78f43c8ce6bin0 -> 41685 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/443db450a4a196468b6809022762989e8cce436ebin0 -> 14330 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/45f316127bbca2fa8b4b3c0d5ec7d6ecae533789bin0 -> 90158 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/468576f62a12957c55315c1617c68fd1dbfa20a8bin0 -> 161736 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/46d4c65728fafc6f4e156d3380cd0d966973f6f8bin0 -> 73526 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/474ccf91ec3b4c4dd4cb210c5092846e0ec9da4abin0 -> 3209 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/47abec0853800c5b5cb56b002610492d0a182024bin0 -> 23182 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/48c603353c82a2c84eb3927b6d89833363dda03bbin0 -> 160623 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/496bf85e1bd58578d6da8879b4497395d1ed6c02bin0 -> 133961 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/49a3010fd95adf83155b59cdc733af98c1833752bin0 -> 7098 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/51028771d680f196d8efcb0f27358354ba904751bin0 -> 44908 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/516afa80c5e3e4a051f766b2f749225fc5c44bbebin0 -> 516 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/55a37dadd855887b7005fc42e6766b9665411795bin0 -> 5641 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/55cce0492e95181e8795861ef202724766939008bin0 -> 122180 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/56780ba9142da037de8d6c6670a68907f46e8a08bin0 -> 62670 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/58ce4e83796759c0912afdea0721ea21d94acc76bin0 -> 11881 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/5972f84630cd752f5a368cefb5817df3df4d85afbin0 -> 20122 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/5f3722c372995342754e37cd95b3a5c4d27bc7d2bin0 -> 766 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/624ff4bf5ea930e0bb0af655ea4e024734c0a9e3bin0 -> 25111 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/62cb9f6d6b6bd9c3ec51eaaff5e1407115ec87d3bin0 -> 42987 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/63cb202b33743fe9b23c6343da7685163732f361bin0 -> 68088 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/6411ca4804a715592177d04b67132aecbdcde8e9bin0 -> 8241 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/65a1bac758d6154f298ac67a87746aabea8c56fcbin0 -> 127457 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/65a446926807cbf760a4e31a5c648b2a59d7192cbin0 -> 1337 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/66af0e46115df14d08adea2e069d87463cda331ebin0 -> 4822 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/67f8fd2b4bbbf73e62b8604027b8a1573fa55834bin0 -> 1337 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/6f7eb638adbaf1ffd460b601ff5ac2bce071e885bin0 -> 219033 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/6fa5fdbb213d7ee42a342de2366e2b0fff27d5abbin0 -> 161805 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/7369a089d82883519dd0806cae2b2f67588a6745bin0 -> 26910 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/73baeff6bbb9e9c7423c2becbaeeaf31b2c8acb6bin0 -> 1337 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/75d68facc4ca176d16b124f83627658422c2ffd0bin0 -> 5041 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/77afcba6c3b22545534c5ac8e7782500bd0f0693bin0 -> 17244 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/77ce47b8b2c33abfc984796ede41173d663dd1bebin0 -> 97406 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/792b7e5b12837e102fd1b820eda366327effc716bin0 -> 38760 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/797b751b252185f541a9c3364303908aff7c5cfdbin0 -> 49861 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/7b19ab78c99b7f1104029f16eddbb426c13f63b2bin0 -> 6379 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/7c0b375813190169f8ff8ad1c8010b79ae75dcdcbin0 -> 32263 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/7c68fb5e323a2a8821685245f0b91cd98206c328bin0 -> 88 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/7cdc589518e31efecde46dbdfca98f5b94a69baebin0 -> 22872 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/7ebaf4a69896bda96f72ae29069597ea58a4d105bin0 -> 22430 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/8008f656b228e87dd3f4264cbe614b5067139a13bin0 -> 4967 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/859604dbfc00d0dfd8c804490ec6a1b496a4b959bin0 -> 8150 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/87a49194fd3b289c5f5525a76b759cd7f63c9f64bin0 -> 143553 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/88e1ae5f07402f215ad1d6393e5d726677441c49bin0 -> 12773 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/8a38f2f2d1fc8499d9f88fd311ecd03cf5cfb721bin0 -> 251601 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/8ac67dfcb6fc74278855a4618fe3ac718015ab0bbin0 -> 85998 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/8e96da6d2cffb0814615807a4da150a032513b5abin0 -> 3778 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/8fdb4a9ddb206424b11844528a727af0dc76adabbin0 -> 1585 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/90c07a76c94ab7988b646e3be73b2ff5d060a017bin0 -> 9163 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/915a1a753abfbc88ecd8484748c4beaf0671ea33bin0 -> 2412 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/91b6ee8b067670cbb8e8953829d6a1cfd78992dcbin0 -> 9793 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/91c1339f8849d302ab5fd94436b3f4bb8634f1a1bin0 -> 12312 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/9514d3d39d5c1144018ca1acc46a277e66f0f337bin0 -> 40372 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/96791f51f2dc40b4c300dfc22e882132f63cd0c4bin0 -> 141514 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/97752cb08d231a90ae8d29d8981bba158387a9d0bin0 -> 143553 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/98b894f014ad21e58b273488e9883499eb416631bin0 -> 28833 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/99530c1d1b1b99b32c1dbc659e5a61c94f4c59e4bin0 -> 22674 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/9a1903df2795483996586290cff2cd49152d0e25bin0 -> 25971 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/9c6092334e04729518aa749fb49295666a486d05bin0 -> 6285 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/9e6de6c53ab115c26e466fb67082217c68620847bin0 -> 2310 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/9ebcf03a78d9e5b22b07a64a193d12fce53db53bbin0 -> 15482 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/9f81c81767b6ed9217bdab9b5d1d6989ed0fb98cbin0 -> 5261 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/a0bcbb1e454bf69804a60094656ea29812d25246bin0 -> 45907 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/a0e84a868e942e08c2162eb4ac2b9ba2d7de1f20bin0 -> 9459 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/a17002d2c4cd10f9fceea2c76ad7d80b1a626206bin0 -> 22957 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/a189ca87d4aea9b07d157a4b9d09aaa454b44d1bbin0 -> 61 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/a260f1b93995a62eef5abce2c7d8df99c18f360ebin0 -> 17588 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/a3d7826ab9420c792dce29512d43bf1f8e25e0ebbin0 -> 4501 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/a3f1ac4cd48d261c274fd23331cbc9060d76ae28bin0 -> 365382 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/a4bb8aacf4189a8a91385cea4a9e8275b166d826bin0 -> 17893 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/a545a168f722093ab56200c3c55fb43b6e31c934bin0 -> 3192 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/a7b0199b7d022a1f873dba97a1fedf7631bcfe88bin0 -> 4468 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/a81068b98bcf85f6a116068dae897ea6cd43d137bin0 -> 2469 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/a8233c1f4d7eb4e1b3774db423ebde1d529e4b5abin0 -> 22674 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/af64940a79f41b38747a6356299c68ca933845dabin0 -> 2802 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/b4e9c892e36289e483f123cc92b4a7cbff210114bin0 -> 5817 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/b521a64435ab603aeba639354b2ed7b01689422abin0 -> 572 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/ba8cd5733accb37b3a3a0032ea01f2e3713294acbin0 -> 7004 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/bc6a06e61f510fee31dade643babff3240e6b486bin0 -> 14490 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/bdd8143ce8db20ed85a7a86442c959bc682ce245bin0 -> 22666 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/bf4f1c69a97d061f274a3a20e09a7b8f93063561bin0 -> 3812 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/bf6912d42f6100be870b8934feb995459b085be8bin0 -> 137157 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/c04865c2e6e2549a0c57427b2f785901e6da8073bin0 -> 56010 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/c0b1de4298bb79b07ebeb6d96214429ad4596d6ebin0 -> 200207 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/c101aea7854ff9e2b12b8d336da9e862852f9d46bin0 -> 52009 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/c2687483a286d1e229c7a849ef096eb9d53e8ac4bin0 -> 17408 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/c6694464b8bfad1185539ead7dcbdac6fcc95391bin0 -> 94822 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/c6c8a932e97f5216defa5e46d5d82206bc50fdcfbin0 -> 392 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/c8c82e6d8351b3e9d36a2293d3e3fe95f0ee293dbin0 -> 118538 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/cf33887daa08678c662b0903b469fabd97027189bin0 -> 1064 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/cf6a6b1744db1cabf755f17ce56d16797c9d9018bin0 -> 98243 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/d0b0d4fb703c4e81f48254cf8d066a7cd65768c0bin0 -> 61911 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/d0fb515dba7042e1ef9d0cf5f93eec88e7d27d0cbin0 -> 73526 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/d4d693c15db73b668f0748940d03bddcfa39991ebin0 -> 538 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/d72a91aaba24b58591cdec36f89e52011107ac8fbin0 -> 26856 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/d735fa6a32d91dd8fc5f7a9f1d744f3ad97c05eabin0 -> 39415 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/d94984a0fa4023b6ead5fa195e7301d64d10c743bin0 -> 11163 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/d986e3eab6f48d710133838f12eeb407dcc2f4b7bin0 -> 140506 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/df46c4a8733efb573529162f6bf4dab73c154f67bin0 -> 17216 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/dfe8a6770dd1417c08b7176083c78955c0d84925bin0 -> 52191 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/e105d5899fd22b5c5a0646bb587c5c2076e46976bin0 -> 1347 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/e507a7060c9ea5915aa92f9a305afc3ca1894598bin0 -> 25385 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/e689f2e74ab75ccceb60f857d41bc8f6718a1a16bin0 -> 18276 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/e6be21966b72ffdc1a5a443281e1a4e8bc3bee29bin0 -> 15629 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/e831e922fe65a0c7f8a4ee2c32c168e7cedc0053bin0 -> 5058 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/e94995cf920160ef91d8085cd49d8f07af928a6bbin0 -> 22005 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/e987ab77851d1ff1d1524c31e51e65fec04b5a38bin0 -> 406 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/ea72e770d5316f1f390e90f014504b1b29366e72bin0 -> 8976 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/ecbf0e112ca482622cb9f295b33f37c62cfd48dabin0 -> 1898 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/ed28847260e2c1e286effd0774c2ae13d15961c8bin0 -> 40073 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/eea728378ec128a8d23bf29024e43cfff1b1db5cbin0 -> 153678 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/eeda03a853b8431fb422f917481ce2a801fffc50bin0 -> 22050 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/ef58730b55180b61f3db96721fdb27b035053e4fbin0 -> 8791 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/f0715a803dc89edd79a1d0d44341d83c19ea2c45bin0 -> 17893 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/f0ad125b86c198869068e44465a39284b71bac7fbin0 -> 9171 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/f184c2aeca47465957b2914d19481bdba0d100debin0 -> 17119 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/f1a126590942e7b0073e821b04724c53515e93d5bin0 -> 52711 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/f1fc48f6a7fb1bcca8cdbe649e77627d24a78451bin0 -> 203626 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/f270437c14803ca1dc2496cf1da97fc3631dae80bin0 -> 7397 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/f3008e7908e519a9e14572b186496d625c513a39bin0 -> 103161 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/f6d9755649b135c7b127b13c29f1f7e4f3623491bin0 -> 12404 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/f8c1457011196c9cc9cf6bd6f369eb37ac93326cbin0 -> 12286 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/f91bb915ff2dfd59180e8ec6bfd5811f77ef9442bin0 -> 28349 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/fa66579f8dc8737569a465fe665903a2a004dc28bin0 -> 8855 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/fae8b32e45f2d31704dad2d98c87dfc3770ee09dbin0 -> 1325 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/fbb813323538cf9dfff8c232c890f93983607169bin0 -> 10771 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/fbe321e0131acf57da2c884cce0fdd74bff8cbeabin0 -> 141066 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/fcbc931914c708a167da6fff80916f77d31e1a06bin0 -> 97423 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/fd14dcd8205886135ea8c3e99febae332e9fa1cabin0 -> 15778 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/fd528126ebd5d401e849df6e1d170cfc8001363ebin0 -> 3981 bytes
-rw-r--r--fuzz/corpus/fuzz_readerutils_workflow/fe3a7045a428196a4712b9e8f3ec9fd957c61517bin0 -> 8393 bytes
-rw-r--r--fuzz/fuzz_readerutils_parseprotolist.cpp49
-rw-r--r--fuzz/fuzz_readerutils_workflow.cpp111
-rw-r--r--src/lib/ndpi_domain_classify.c5
217 files changed, 260 insertions, 6 deletions
diff --git a/.gitignore b/.gitignore
index ab82643ef..2a07ea856 100644
--- a/.gitignore
+++ b/.gitignore
@@ -77,6 +77,8 @@
/fuzz/fuzz_gcrypt_light
/fuzz/fuzz_ndpi_reader_payload_analyzer
/fuzz/fuzz_filecfg_protocols
+/fuzz/fuzz_readerutils_workflow
+/fuzz/fuzz_readerutils_parseprotolist
/fuzz/fuzz_ndpi_reader_alloc_fail_seed_corpus.zip
/fuzz/fuzz_ndpi_reader_seed_corpus.zip
/fuzz/fuzz_quic_get_crypto_data_seed_corpus.zip
@@ -100,6 +102,8 @@
/fuzz/fuzz_filecfg_protocols_seed_corpus.zip
/fuzz/fuzz_dga_seed_corpus.zip
/fuzz/fuzz_ndpi_reader_payload_analyzer_seed_corpus.zip
+/fuzz/fuzz_readerutils_workflow_seed_corpus.zip
+/fuzz/fuzz_readerutils_parseprotolist_seed_corpus.zip
/fuzz/fuzz_*.dict
/influxdb/Makefile
/install-sh
diff --git a/example/reader_util.c b/example/reader_util.c
index 071acb774..fff77f139 100644
--- a/example/reader_util.c
+++ b/example/reader_util.c
@@ -436,7 +436,7 @@ int parse_proto_name_list(char *str, NDPI_PROTOCOL_BITMASK *bitmask, int inverte
}
proto = ndpi_get_proto_id(module, n);
if(proto == NDPI_PROTOCOL_UNKNOWN && strcmp(n,"unknown") && strcmp(n,"0")) {
- fprintf(stderr,"Invalid protocol %s\n",n);
+ LOG(NDPI_LOG_ERROR, "Invalid protocol %s\n", n);
ndpi_exit_detection_module(module);
return 1;
}
@@ -475,7 +475,7 @@ struct ndpi_workflow* ndpi_workflow_init(const struct ndpi_workflow_prefs * pref
workflow = ndpi_calloc(1, sizeof(struct ndpi_workflow));
if(workflow == NULL) {
LOG(NDPI_LOG_ERROR, "global structure initialization failed\n");
- ndpi_free(module);
+ ndpi_exit_detection_module(module);
return NULL;
}
@@ -489,8 +489,11 @@ struct ndpi_workflow* ndpi_workflow_init(const struct ndpi_workflow_prefs * pref
if(_debug_protocols != NULL && ! _debug_protocols_ok) {
NDPI_BITMASK_RESET(debug_bitmask);
- if(parse_proto_name_list(_debug_protocols, &debug_bitmask, 0))
- exit(-1);
+ if(parse_proto_name_list(_debug_protocols, &debug_bitmask, 0)) {
+ ndpi_exit_detection_module(module);
+ ndpi_free(workflow);
+ return NULL;
+ }
_debug_protocols_ok = 1;
}
if(_debug_protocols_ok)
diff --git a/example/reader_util.h b/example/reader_util.h
index 9d63278a4..fad25ca83 100644
--- a/example/reader_util.h
+++ b/example/reader_util.h
@@ -93,6 +93,10 @@ extern int dpdk_port_deinit(int port);
#define SERIALIZATION_BUFSIZ (8192 * 2)
+#ifdef __cplusplus
+extern "C" {
+#endif
+
// inner hash table (ja3 -> security state)
typedef struct ndpi_ja3_info {
char * ja3;
@@ -408,6 +412,7 @@ void ndpi_flow_info_free_data(struct ndpi_flow_info *flow);
void ndpi_flow_info_freer(void *node);
const char* print_cipher_id(u_int32_t cipher);
double ndpi_flow_get_byte_count_entropy(const uint32_t byte_count[256], unsigned int num_bytes);
+int parse_proto_name_list(char *str, NDPI_PROTOCOL_BITMASK *bitmask, int inverted_logic);
extern int nDPI_LogLevel;
@@ -425,4 +430,8 @@ extern int nDPI_LogLevel;
#define LINKTYPE_LINUX_SLL2 276
#endif
+#ifdef __cplusplus
+}
+#endif
+
#endif
diff --git a/fuzz/Makefile.am b/fuzz/Makefile.am
index 8e7a27a2b..0235e718c 100644
--- a/fuzz/Makefile.am
+++ b/fuzz/Makefile.am
@@ -9,6 +9,8 @@ bin_PROGRAMS += fuzz_libinjection
bin_PROGRAMS += fuzz_gcrypt_light
#Configuration files
bin_PROGRAMS += fuzz_filecfg_protocols
+#Reader utils
+bin_PROGRAMS += fuzz_readerutils_workflow fuzz_readerutils_parseprotolist
fuzz_process_packet_SOURCES = fuzz_process_packet.c fuzz_common_code.c
fuzz_process_packet_CFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS)
@@ -393,6 +395,36 @@ fuzz_filecfg_protocols_LINK=$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CXX) @NDPI_CFLAGS@ $(AM_CXXFLAGS) $(CXXFLAGS) \
$(fuzz_filecfg_protocols_LDFLAGS) @NDPI_LDFLAGS@ $(LDFLAGS) -o $@
+fuzz_readerutils_workflow_SOURCES = fuzz_readerutils_workflow.cpp fuzz_common_code.c ../example/reader_util.c
+fuzz_readerutils_workflow_CXXFLAGS = -I../example/ @NDPI_CFLAGS@ $(CXXFLAGS)
+fuzz_readerutils_workflow_CFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS)
+fuzz_readerutils_workflow_LDADD = ../src/lib/libndpi.a $(ADDITIONAL_LIBS)
+fuzz_readerutils_workflow_LDFLAGS = $(PCAP_LIB) $(LIBS)
+if HAS_FUZZLDFLAGS
+fuzz_readerutils_workflow_CXXFLAGS += $(LIB_FUZZING_ENGINE)
+fuzz_readerutils_workflow_CFLAGS += $(LIB_FUZZING_ENGINE)
+fuzz_readerutils_workflow_LDFLAGS += $(LIB_FUZZING_ENGINE)
+endif
+# force usage of CXX for linker
+fuzz_readerutils_workflow_LINK=$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXX) @NDPI_CFLAGS@ $(AM_CXXFLAGS) $(CXXFLAGS) \
+ $(fuzz_readerutils_workflow_LDFLAGS) @NDPI_LDFLAGS@ $(LDFLAGS) -o $@
+
+fuzz_readerutils_parseprotolist_SOURCES = fuzz_readerutils_parseprotolist.cpp fuzz_common_code.c ../example/reader_util.c
+fuzz_readerutils_parseprotolist_CXXFLAGS = -I../example/ @NDPI_CFLAGS@ $(CXXFLAGS)
+fuzz_readerutils_parseprotolist_CFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS)
+fuzz_readerutils_parseprotolist_LDADD = ../src/lib/libndpi.a $(ADDITIONAL_LIBS)
+fuzz_readerutils_parseprotolist_LDFLAGS = $(PCAP_LIB) $(LIBS)
+if HAS_FUZZLDFLAGS
+fuzz_readerutils_parseprotolist_CXXFLAGS += $(LIB_FUZZING_ENGINE)
+fuzz_readerutils_parseprotolist_CFLAGS += $(LIB_FUZZING_ENGINE)
+fuzz_readerutils_parseprotolist_LDFLAGS += $(LIB_FUZZING_ENGINE)
+endif
+# force usage of CXX for linker
+fuzz_readerutils_parseprotolist_LINK=$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXX) @NDPI_CFLAGS@ $(AM_CXXFLAGS) $(CXXFLAGS) \
+ $(fuzz_readerutils_parseprotolist_LDFLAGS) @NDPI_LDFLAGS@ $(LDFLAGS) -o $@
+
# required for Google oss-fuzz
# see https://github.com/google/oss-fuzz/tree/master/projects/ndpi
@@ -502,7 +534,17 @@ files_corpus_fuzz_filecfg_protocols := $(wildcard corpus/fuzz_filecfg_protocols
fuzz_filecfg_protocols_seed_corpus.zip: $(files_corpus_fuzz_filecfg_protocols)
zip -j fuzz_filecfg_protocols_seed_corpus.zip $(files_corpus_fuzz_filecfg_protocols)
-corpus: fuzz_ndpi_reader_seed_corpus.zip fuzz_ndpi_reader_alloc_fail_seed_corpus.zip fuzz_ndpi_reader_payload_analyzer_seed_corpus.zip fuzz_quic_get_crypto_data_seed_corpus.zip fuzz_config_seed_corpus.zip fuzz_ds_patricia_seed_corpus.zip fuzz_ds_ahocorasick_seed_corpus.zip fuzz_alg_ses_des_seed_corpus.zip fuzz_alg_hw_rsi_outliers_da_seed_corpus.zip fuzz_alg_bins_seed_corpus.zip fuzz_alg_hll_seed_corpus.zip fuzz_alg_jitter_seed_corpus.zip fuzz_ds_libcache_seed_corpus.zip fuzz_community_id_seed_corpus.zip fuzz_ds_tree_seed_corpus.zip fuzz_serialization_seed_corpus.zip fuzz_ds_ptree_seed_corpus.zip fuzz_alg_crc32_md5_seed_corpus.zip fuzz_alg_bytestream_seed_corpus.zip fuzz_libinjection_seed_corpus.zip fuzz_tls_certificate_seed_corpus.zip fuzz_filecfg_protocols_seed_corpus.zip
+files_corpus_fuzz_readerutils_workflow := $(wildcard corpus/fuzz_readerutils_workflow/*)
+
+fuzz_readerutils_workflow_seed_corpus.zip: $(files_corpus_fuzz_readerutils_workflow)
+ zip -j fuzz_readerutils_workflow_seed_corpus.zip $(files_corpus_fuzz_readerutils_workflow)
+
+files_corpus_fuzz_readerutils_parseprotolist := $(wildcard corpus/fuzz_readerutils_parseprotolist/*)
+
+fuzz_readerutils_parseprotolist_seed_corpus.zip: $(files_corpus_fuzz_readerutils_parseprotolist)
+ zip -j fuzz_readerutils_parseprotolist_seed_corpus.zip $(files_corpus_fuzz_readerutils_parseprotolist)
+
+corpus: fuzz_ndpi_reader_seed_corpus.zip fuzz_ndpi_reader_alloc_fail_seed_corpus.zip fuzz_ndpi_reader_payload_analyzer_seed_corpus.zip fuzz_quic_get_crypto_data_seed_corpus.zip fuzz_config_seed_corpus.zip fuzz_ds_patricia_seed_corpus.zip fuzz_ds_ahocorasick_seed_corpus.zip fuzz_alg_ses_des_seed_corpus.zip fuzz_alg_hw_rsi_outliers_da_seed_corpus.zip fuzz_alg_bins_seed_corpus.zip fuzz_alg_hll_seed_corpus.zip fuzz_alg_jitter_seed_corpus.zip fuzz_ds_libcache_seed_corpus.zip fuzz_community_id_seed_corpus.zip fuzz_ds_tree_seed_corpus.zip fuzz_serialization_seed_corpus.zip fuzz_ds_ptree_seed_corpus.zip fuzz_alg_crc32_md5_seed_corpus.zip fuzz_alg_bytestream_seed_corpus.zip fuzz_libinjection_seed_corpus.zip fuzz_tls_certificate_seed_corpus.zip fuzz_filecfg_protocols_seed_corpus.zip fuzz_readerutils_workflow_seed_corpus.zip fuzz_readerutils_parseprotolist_seed_corpus.zip
cp corpus/fuzz_*seed_corpus.zip .
#Create dictionaries exactly as expected by oss-fuzz.
@@ -529,6 +571,8 @@ distdir:
-o -path './corpus/fuzz_*.zip' \
-o -path './corpus/fuzz_quic_get_crypto_data/*' \
-o -path './corpus/fuzz_filecfg_protocols/*' \
+ -o -path './corpus/fuzz_readerutils_workflow/*' \
+ -o -path './corpus/fuzz_readerutils_parseprotolist/*' \
-o -path './corpus/fuzz_config/*' \
-o -path './corpus/fuzz_serialization/*' \
-o -path './corpus/fuzz_community_id/*' \
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/030dd00584b897b53bb911b8eb9ed988ad41512b b/fuzz/corpus/fuzz_readerutils_parseprotolist/030dd00584b897b53bb911b8eb9ed988ad41512b
new file mode 100644
index 000000000..ed9e686a3
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/030dd00584b897b53bb911b8eb9ed988ad41512b
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/0c98a57b0e288dda98038946bedb7f4f498c2ab9 b/fuzz/corpus/fuzz_readerutils_parseprotolist/0c98a57b0e288dda98038946bedb7f4f498c2ab9
new file mode 100644
index 000000000..b596cd41d
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/0c98a57b0e288dda98038946bedb7f4f498c2ab9
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/1 b/fuzz/corpus/fuzz_readerutils_parseprotolist/1
new file mode 100644
index 000000000..0702cb5bf
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/1
@@ -0,0 +1 @@
+all
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/10 b/fuzz/corpus/fuzz_readerutils_parseprotolist/10
new file mode 100644
index 000000000..257cc5642
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/10
@@ -0,0 +1 @@
+foo
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/10a91a2248f2b25b29d2fd4c06ffba567db5858b b/fuzz/corpus/fuzz_readerutils_parseprotolist/10a91a2248f2b25b29d2fd4c06ffba567db5858b
new file mode 100644
index 000000000..d9b4bcae3
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/10a91a2248f2b25b29d2fd4c06ffba567db5858b
@@ -0,0 +1 @@
+-,"ovpn," \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/11 b/fuzz/corpus/fuzz_readerutils_parseprotolist/11
new file mode 100644
index 000000000..eca8e31ec
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/11
@@ -0,0 +1 @@
+ foo
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/12 b/fuzz/corpus/fuzz_readerutils_parseprotolist/12
new file mode 100644
index 000000000..d675fa44e
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/12
@@ -0,0 +1 @@
+foo bar
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/13 b/fuzz/corpus/fuzz_readerutils_parseprotolist/13
new file mode 100644
index 000000000..a02408f1d
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/13
@@ -0,0 +1 @@
+-openvpn
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/14 b/fuzz/corpus/fuzz_readerutils_parseprotolist/14
new file mode 100644
index 000000000..d07e08dd3
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/14
@@ -0,0 +1 @@
+-openvpn;
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/15 b/fuzz/corpus/fuzz_readerutils_parseprotolist/15
new file mode 100644
index 000000000..6ef9922d2
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/15
@@ -0,0 +1 @@
+-openvpn;all
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/16 b/fuzz/corpus/fuzz_readerutils_parseprotolist/16
new file mode 100644
index 000000000..88d9bb3bc
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/16
@@ -0,0 +1 @@
+-http\t--dns
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/1c3e4e9f5eb1430b45a15b6df9580b0446381908 b/fuzz/corpus/fuzz_readerutils_parseprotolist/1c3e4e9f5eb1430b45a15b6df9580b0446381908
new file mode 100644
index 000000000..8c2a116bb
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/1c3e4e9f5eb1430b45a15b6df9580b0446381908
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/2 b/fuzz/corpus/fuzz_readerutils_parseprotolist/2
new file mode 100644
index 000000000..6cf2761e1
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/2
@@ -0,0 +1 @@
+all;
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/231f27621e60cc42c953ab6cc58cedb54a95fbc6 b/fuzz/corpus/fuzz_readerutils_parseprotolist/231f27621e60cc42c953ab6cc58cedb54a95fbc6
new file mode 100644
index 000000000..b74fca60a
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/231f27621e60cc42c953ab6cc58cedb54a95fbc6
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/237cc011e3270d9ad91c0066c26b1d07f79df7f5 b/fuzz/corpus/fuzz_readerutils_parseprotolist/237cc011e3270d9ad91c0066c26b1d07f79df7f5
new file mode 100644
index 000000000..0eaf37ef0
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/237cc011e3270d9ad91c0066c26b1d07f79df7f5
@@ -0,0 +1 @@
+-ovpn \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/3 b/fuzz/corpus/fuzz_readerutils_parseprotolist/3
new file mode 100644
index 000000000..3b4f7e358
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/3
@@ -0,0 +1 @@
+quic;http
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/32ee88cc611eb5e2057d13d3a7df01d65175b7ef b/fuzz/corpus/fuzz_readerutils_parseprotolist/32ee88cc611eb5e2057d13d3a7df01d65175b7ef
new file mode 100644
index 000000000..bc8e808bc
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/32ee88cc611eb5e2057d13d3a7df01d65175b7ef
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/35220b50f5998387245b2d7c5ee06f64823cfb3d b/fuzz/corpus/fuzz_readerutils_parseprotolist/35220b50f5998387245b2d7c5ee06f64823cfb3d
new file mode 100644
index 000000000..35ff2f53c
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/35220b50f5998387245b2d7c5ee06f64823cfb3d
@@ -0,0 +1 @@
+quic;„p,
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/3caf6ff7a958dd5f6cc611a0b79857c1ceefb096 b/fuzz/corpus/fuzz_readerutils_parseprotolist/3caf6ff7a958dd5f6cc611a0b79857c1ceefb096
new file mode 100644
index 000000000..0bbc30f8f
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/3caf6ff7a958dd5f6cc611a0b79857c1ceefb096
@@ -0,0 +1 @@
+-ovpn
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/4 b/fuzz/corpus/fuzz_readerutils_parseprotolist/4
new file mode 100644
index 000000000..49d20bd58
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/4
@@ -0,0 +1 @@
+quic;http,
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/5 b/fuzz/corpus/fuzz_readerutils_parseprotolist/5
new file mode 100644
index 000000000..6943da706
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/5
@@ -0,0 +1 @@
+,quic;http,
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/535c91faaf0c9f9f3d9b6a5c1acee798aba92477 b/fuzz/corpus/fuzz_readerutils_parseprotolist/535c91faaf0c9f9f3d9b6a5c1acee798aba92477
new file mode 100644
index 000000000..fb6c8d81c
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/535c91faaf0c9f9f3d9b6a5c1acee798aba92477
@@ -0,0 +1 @@
+alq \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/5728d7d6effbf8907786471d50ec131e80ebfdf0 b/fuzz/corpus/fuzz_readerutils_parseprotolist/5728d7d6effbf8907786471d50ec131e80ebfdf0
new file mode 100644
index 000000000..9723f278f
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/5728d7d6effbf8907786471d50ec131e80ebfdf0
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/59cf709399be499c5f24a1aabf348606cf37694b b/fuzz/corpus/fuzz_readerutils_parseprotolist/59cf709399be499c5f24a1aabf348606cf37694b
new file mode 100644
index 000000000..9a9b96c72
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/59cf709399be499c5f24a1aabf348606cf37694b
@@ -0,0 +1 @@
+all;all;
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/5eb995ab3aa553daa6e0a6d3690f1c72fb9e71cb b/fuzz/corpus/fuzz_readerutils_parseprotolist/5eb995ab3aa553daa6e0a6d3690f1c72fb9e71cb
new file mode 100644
index 000000000..5fa1062af
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/5eb995ab3aa553daa6e0a6d3690f1c72fb9e71cb
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/6 b/fuzz/corpus/fuzz_readerutils_parseprotolist/6
new file mode 100644
index 000000000..f0d3c17b8
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/6
@@ -0,0 +1 @@
+,quic;http,+all
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/6e7fd6ebc1ab69ef3a5077ccbe3d69677fea1a09 b/fuzz/corpus/fuzz_readerutils_parseprotolist/6e7fd6ebc1ab69ef3a5077ccbe3d69677fea1a09
new file mode 100644
index 000000000..5bf4d0eab
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/6e7fd6ebc1ab69ef3a5077ccbe3d69677fea1a09
@@ -0,0 +1 @@
+quic;tthttp,
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/7 b/fuzz/corpus/fuzz_readerutils_parseprotolist/7
new file mode 100644
index 000000000..a8ff3129f
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/7
@@ -0,0 +1 @@
+,quic;http,-all
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/7b8f11484a99cf70a6f7b4a0d1a5e753e11775e5 b/fuzz/corpus/fuzz_readerutils_parseprotolist/7b8f11484a99cf70a6f7b4a0d1a5e753e11775e5
new file mode 100644
index 000000000..ba8350153
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/7b8f11484a99cf70a6f7b4a0d1a5e753e11775e5
@@ -0,0 +1 @@
+,quic;http,-a
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/8 b/fuzz/corpus/fuzz_readerutils_parseprotolist/8
new file mode 100644
index 000000000..858592da2
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/8
@@ -0,0 +1 @@
+all,+dns
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/8ef6d0f838b137c837743eb02376351acf7c19cf b/fuzz/corpus/fuzz_readerutils_parseprotolist/8ef6d0f838b137c837743eb02376351acf7c19cf
new file mode 100644
index 000000000..10fb58c7f
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/8ef6d0f838b137c837743eb02376351acf7c19cf
@@ -0,0 +1 @@
+-,"ovpn,"
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/9 b/fuzz/corpus/fuzz_readerutils_parseprotolist/9
new file mode 100644
index 000000000..71f4c5476
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/9
@@ -0,0 +1 @@
+all,unknown
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/95bbc11e22b6946a44b5115be1a4edd759051a6f b/fuzz/corpus/fuzz_readerutils_parseprotolist/95bbc11e22b6946a44b5115be1a4edd759051a6f
new file mode 100644
index 000000000..0762664f2
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/95bbc11e22b6946a44b5115be1a4edd759051a6f
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/9c66e8fc4397f04b208f32a119f39cc4199d7934 b/fuzz/corpus/fuzz_readerutils_parseprotolist/9c66e8fc4397f04b208f32a119f39cc4199d7934
new file mode 100644
index 000000000..ca21f8b77
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/9c66e8fc4397f04b208f32a119f39cc4199d7934
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/a0509ba2816a7e772f4d27f616ac57994243a32e b/fuzz/corpus/fuzz_readerutils_parseprotolist/a0509ba2816a7e772f4d27f616ac57994243a32e
new file mode 100644
index 000000000..a70e8853e
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/a0509ba2816a7e772f4d27f616ac57994243a32e
@@ -0,0 +1 @@
+quic,
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/aee9fd2b3dc7c4b0892c1b0e759a58a47637acc2 b/fuzz/corpus/fuzz_readerutils_parseprotolist/aee9fd2b3dc7c4b0892c1b0e759a58a47637acc2
new file mode 100644
index 000000000..36294a604
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/aee9fd2b3dc7c4b0892c1b0e759a58a47637acc2
@@ -0,0 +1,2 @@
+all,+dns
+) \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/b7ae8aa291fc5824c9d3291f2fb99cb8efd4d45c b/fuzz/corpus/fuzz_readerutils_parseprotolist/b7ae8aa291fc5824c9d3291f2fb99cb8efd4d45c
new file mode 100644
index 000000000..96b3965e3
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/b7ae8aa291fc5824c9d3291f2fb99cb8efd4d45c
@@ -0,0 +1 @@
+OICQ foo
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/c259e771b237769cb6bce9a5ab734c576a6da3e1 b/fuzz/corpus/fuzz_readerutils_parseprotolist/c259e771b237769cb6bce9a5ab734c576a6da3e1
new file mode 100644
index 000000000..bc8840b22
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/c259e771b237769cb6bce9a5ab734c576a6da3e1
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/d749a82ff4b833b3f96693aae60f310ed6c79d6e b/fuzz/corpus/fuzz_readerutils_parseprotolist/d749a82ff4b833b3f96693aae60f310ed6c79d6e
new file mode 100644
index 000000000..6d105003e
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/d749a82ff4b833b3f96693aae60f310ed6c79d6e
@@ -0,0 +1 @@
+qalulij \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/daad5285c5ce44e7d78003fa9f809dc779aace50 b/fuzz/corpus/fuzz_readerutils_parseprotolist/daad5285c5ce44e7d78003fa9f809dc779aace50
new file mode 100644
index 000000000..ceedf7586
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/daad5285c5ce44e7d78003fa9f809dc779aace50
@@ -0,0 +1 @@
+lal \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_readerutils_parseprotolist/dc87035736d399babef7d1f0916462e52f1552c3 b/fuzz/corpus/fuzz_readerutils_parseprotolist/dc87035736d399babef7d1f0916462e52f1552c3
new file mode 100644
index 000000000..7d195e2cf
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_parseprotolist/dc87035736d399babef7d1f0916462e52f1552c3
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/045156861f00553829a5e0cbf17b3fbc6b3184a4 b/fuzz/corpus/fuzz_readerutils_workflow/045156861f00553829a5e0cbf17b3fbc6b3184a4
new file mode 100644
index 000000000..2ca469042
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/045156861f00553829a5e0cbf17b3fbc6b3184a4
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/06b0090ca2144a82e8dcd75307675cb2e01f1759 b/fuzz/corpus/fuzz_readerutils_workflow/06b0090ca2144a82e8dcd75307675cb2e01f1759
new file mode 100644
index 000000000..d3125d6b7
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/06b0090ca2144a82e8dcd75307675cb2e01f1759
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/091cbf9eb7fa20a23bc04a7d80589505a4435412 b/fuzz/corpus/fuzz_readerutils_workflow/091cbf9eb7fa20a23bc04a7d80589505a4435412
new file mode 100644
index 000000000..6eb4de80e
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/091cbf9eb7fa20a23bc04a7d80589505a4435412
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/0a410dc67422675c2fad8660eee0b8ac5c1a15ef b/fuzz/corpus/fuzz_readerutils_workflow/0a410dc67422675c2fad8660eee0b8ac5c1a15ef
new file mode 100644
index 000000000..429ac82bb
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/0a410dc67422675c2fad8660eee0b8ac5c1a15ef
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/0c111d4bd41d9a99b3a014c0655d00d5c144bf5f b/fuzz/corpus/fuzz_readerutils_workflow/0c111d4bd41d9a99b3a014c0655d00d5c144bf5f
new file mode 100644
index 000000000..51791ae29
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/0c111d4bd41d9a99b3a014c0655d00d5c144bf5f
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/0e0e49a64d16130caf9f9fdeddfe978e977c54a5 b/fuzz/corpus/fuzz_readerutils_workflow/0e0e49a64d16130caf9f9fdeddfe978e977c54a5
new file mode 100644
index 000000000..dd88b9aee
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/0e0e49a64d16130caf9f9fdeddfe978e977c54a5
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/0eb2921ab7f0957bea5cd98abe6cdee25a712520 b/fuzz/corpus/fuzz_readerutils_workflow/0eb2921ab7f0957bea5cd98abe6cdee25a712520
new file mode 100644
index 000000000..689f3586b
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/0eb2921ab7f0957bea5cd98abe6cdee25a712520
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/13d90f9dc94015d7d001b24e33ccc36af6e3a28c b/fuzz/corpus/fuzz_readerutils_workflow/13d90f9dc94015d7d001b24e33ccc36af6e3a28c
new file mode 100644
index 000000000..c92318a90
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/13d90f9dc94015d7d001b24e33ccc36af6e3a28c
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/144d597e6a3e296309ad26ae196248f78c95004e b/fuzz/corpus/fuzz_readerutils_workflow/144d597e6a3e296309ad26ae196248f78c95004e
new file mode 100644
index 000000000..dbea7e39c
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/144d597e6a3e296309ad26ae196248f78c95004e
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/14f36303dcb1ddc5c9d50b652b413fd2f82bbe35 b/fuzz/corpus/fuzz_readerutils_workflow/14f36303dcb1ddc5c9d50b652b413fd2f82bbe35
new file mode 100644
index 000000000..3cdf4aa1f
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/14f36303dcb1ddc5c9d50b652b413fd2f82bbe35
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/16c816553573fda3261eeaa83dbe982c0e1c0465 b/fuzz/corpus/fuzz_readerutils_workflow/16c816553573fda3261eeaa83dbe982c0e1c0465
new file mode 100644
index 000000000..5d82b9c2f
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/16c816553573fda3261eeaa83dbe982c0e1c0465
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/18689ef1a0d1535612fb90c7c43225b9256c1b07 b/fuzz/corpus/fuzz_readerutils_workflow/18689ef1a0d1535612fb90c7c43225b9256c1b07
new file mode 100644
index 000000000..5e00eea6d
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/18689ef1a0d1535612fb90c7c43225b9256c1b07
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/19402f080783a8599655bf028e0a0167a3b62a01 b/fuzz/corpus/fuzz_readerutils_workflow/19402f080783a8599655bf028e0a0167a3b62a01
new file mode 100644
index 000000000..d80e108cd
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/19402f080783a8599655bf028e0a0167a3b62a01
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/19783d17080cfd6577e78f30fe427c731f3dc282 b/fuzz/corpus/fuzz_readerutils_workflow/19783d17080cfd6577e78f30fe427c731f3dc282
new file mode 100644
index 000000000..7217626e0
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/19783d17080cfd6577e78f30fe427c731f3dc282
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/19ae010065b811584bf631825abbe4ee91bb6349 b/fuzz/corpus/fuzz_readerutils_workflow/19ae010065b811584bf631825abbe4ee91bb6349
new file mode 100644
index 000000000..500139f0d
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/19ae010065b811584bf631825abbe4ee91bb6349
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/1dacd1658b5eb37aee276aad6c294c85007018d6 b/fuzz/corpus/fuzz_readerutils_workflow/1dacd1658b5eb37aee276aad6c294c85007018d6
new file mode 100644
index 000000000..4ba4dbc5e
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/1dacd1658b5eb37aee276aad6c294c85007018d6
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/21bb2013aef110d86502e7ebd6a7545de0aa700d b/fuzz/corpus/fuzz_readerutils_workflow/21bb2013aef110d86502e7ebd6a7545de0aa700d
new file mode 100644
index 000000000..5021bf081
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/21bb2013aef110d86502e7ebd6a7545de0aa700d
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/21cff4abc294d8e86021f8f7107be726a2631c33 b/fuzz/corpus/fuzz_readerutils_workflow/21cff4abc294d8e86021f8f7107be726a2631c33
new file mode 100644
index 000000000..f55414595
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/21cff4abc294d8e86021f8f7107be726a2631c33
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/27f6503940c09c5c492dc6dc26fb84e6da59ed74 b/fuzz/corpus/fuzz_readerutils_workflow/27f6503940c09c5c492dc6dc26fb84e6da59ed74
new file mode 100644
index 000000000..fdad732ac
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/27f6503940c09c5c492dc6dc26fb84e6da59ed74
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/283ba432c52d4a6180dc79fb0dbe8ef528adcfa4 b/fuzz/corpus/fuzz_readerutils_workflow/283ba432c52d4a6180dc79fb0dbe8ef528adcfa4
new file mode 100644
index 000000000..2c76ea6c6
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/283ba432c52d4a6180dc79fb0dbe8ef528adcfa4
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/288e55691b68c5282d2cdc8002d08e40b54fb0d1 b/fuzz/corpus/fuzz_readerutils_workflow/288e55691b68c5282d2cdc8002d08e40b54fb0d1
new file mode 100644
index 000000000..435f3265e
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/288e55691b68c5282d2cdc8002d08e40b54fb0d1
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/28fc12d63d2edb04a5fe6098a237dd14b875b4ae b/fuzz/corpus/fuzz_readerutils_workflow/28fc12d63d2edb04a5fe6098a237dd14b875b4ae
new file mode 100644
index 000000000..7d178d564
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/28fc12d63d2edb04a5fe6098a237dd14b875b4ae
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/2afa2a1fd17c1c56b8df2dc9bbc9a3d60965dbe4 b/fuzz/corpus/fuzz_readerutils_workflow/2afa2a1fd17c1c56b8df2dc9bbc9a3d60965dbe4
new file mode 100644
index 000000000..24ef4e2fd
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/2afa2a1fd17c1c56b8df2dc9bbc9a3d60965dbe4
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/2b704968a5c5217c699a65d9852d5a50476e9a5e b/fuzz/corpus/fuzz_readerutils_workflow/2b704968a5c5217c699a65d9852d5a50476e9a5e
new file mode 100644
index 000000000..067a8bd98
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/2b704968a5c5217c699a65d9852d5a50476e9a5e
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/2c0c09cacdc8c7a378df8fc4524ca8ff3b9ec11e b/fuzz/corpus/fuzz_readerutils_workflow/2c0c09cacdc8c7a378df8fc4524ca8ff3b9ec11e
new file mode 100644
index 000000000..387518ad3
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/2c0c09cacdc8c7a378df8fc4524ca8ff3b9ec11e
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/2dcc7bfbade9de803d22746e4518840739b04c12 b/fuzz/corpus/fuzz_readerutils_workflow/2dcc7bfbade9de803d22746e4518840739b04c12
new file mode 100644
index 000000000..3276c711d
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/2dcc7bfbade9de803d22746e4518840739b04c12
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/31d95208bb78564d490d089d3071a72297c7dac6 b/fuzz/corpus/fuzz_readerutils_workflow/31d95208bb78564d490d089d3071a72297c7dac6
new file mode 100644
index 000000000..500c0289a
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/31d95208bb78564d490d089d3071a72297c7dac6
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/335c27c825b7985231227b30065fbbaeb3c84be7 b/fuzz/corpus/fuzz_readerutils_workflow/335c27c825b7985231227b30065fbbaeb3c84be7
new file mode 100644
index 000000000..64ee8ff23
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/335c27c825b7985231227b30065fbbaeb3c84be7
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/33e0161c7cdf5277293f3ad3853c66396d2428dd b/fuzz/corpus/fuzz_readerutils_workflow/33e0161c7cdf5277293f3ad3853c66396d2428dd
new file mode 100644
index 000000000..587da75c1
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/33e0161c7cdf5277293f3ad3853c66396d2428dd
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/3816909993b980e922fb6e8b76c9969ac537e122 b/fuzz/corpus/fuzz_readerutils_workflow/3816909993b980e922fb6e8b76c9969ac537e122
new file mode 100644
index 000000000..219cb81c8
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/3816909993b980e922fb6e8b76c9969ac537e122
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/3b2002a3ff230dcfa1bf0db2ff4b0c51f389f1d0 b/fuzz/corpus/fuzz_readerutils_workflow/3b2002a3ff230dcfa1bf0db2ff4b0c51f389f1d0
new file mode 100644
index 000000000..b87b7c59b
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/3b2002a3ff230dcfa1bf0db2ff4b0c51f389f1d0
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/3deaac8fd4983089ded54b236189758f340e4d56 b/fuzz/corpus/fuzz_readerutils_workflow/3deaac8fd4983089ded54b236189758f340e4d56
new file mode 100644
index 000000000..7ded4a38c
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/3deaac8fd4983089ded54b236189758f340e4d56
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/3df610aafc02c53dd6ddf457f655a5cd0ed11f7a b/fuzz/corpus/fuzz_readerutils_workflow/3df610aafc02c53dd6ddf457f655a5cd0ed11f7a
new file mode 100644
index 000000000..8f94f646a
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/3df610aafc02c53dd6ddf457f655a5cd0ed11f7a
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/3e0fda5ff341d1f07c7c09161dc1a36ae83445a9 b/fuzz/corpus/fuzz_readerutils_workflow/3e0fda5ff341d1f07c7c09161dc1a36ae83445a9
new file mode 100644
index 000000000..cbadbf84f
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/3e0fda5ff341d1f07c7c09161dc1a36ae83445a9
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/3f03d5c147f4f920ecb76439432d98b7118ee94d b/fuzz/corpus/fuzz_readerutils_workflow/3f03d5c147f4f920ecb76439432d98b7118ee94d
new file mode 100644
index 000000000..ffa5806d1
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/3f03d5c147f4f920ecb76439432d98b7118ee94d
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/3ffaa9c46f3e82f6f092ce3eb553eb9c6eb6d2d8 b/fuzz/corpus/fuzz_readerutils_workflow/3ffaa9c46f3e82f6f092ce3eb553eb9c6eb6d2d8
new file mode 100644
index 000000000..d33776e21
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/3ffaa9c46f3e82f6f092ce3eb553eb9c6eb6d2d8
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/40ae20f03b8bb5caf710b768fc5748bdf3ed7cc6 b/fuzz/corpus/fuzz_readerutils_workflow/40ae20f03b8bb5caf710b768fc5748bdf3ed7cc6
new file mode 100644
index 000000000..2c92c3dcd
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/40ae20f03b8bb5caf710b768fc5748bdf3ed7cc6
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/418f987f15ab6b70b6c7e116ba900dc0a6c0e780 b/fuzz/corpus/fuzz_readerutils_workflow/418f987f15ab6b70b6c7e116ba900dc0a6c0e780
new file mode 100644
index 000000000..d379ad0dc
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/418f987f15ab6b70b6c7e116ba900dc0a6c0e780
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/43eb12ac4719e9fb3999a88b5a0d3a78f43c8ce6 b/fuzz/corpus/fuzz_readerutils_workflow/43eb12ac4719e9fb3999a88b5a0d3a78f43c8ce6
new file mode 100644
index 000000000..994647234
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/43eb12ac4719e9fb3999a88b5a0d3a78f43c8ce6
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/443db450a4a196468b6809022762989e8cce436e b/fuzz/corpus/fuzz_readerutils_workflow/443db450a4a196468b6809022762989e8cce436e
new file mode 100644
index 000000000..7ca633577
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/443db450a4a196468b6809022762989e8cce436e
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/45f316127bbca2fa8b4b3c0d5ec7d6ecae533789 b/fuzz/corpus/fuzz_readerutils_workflow/45f316127bbca2fa8b4b3c0d5ec7d6ecae533789
new file mode 100644
index 000000000..5c55db8d2
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/45f316127bbca2fa8b4b3c0d5ec7d6ecae533789
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/468576f62a12957c55315c1617c68fd1dbfa20a8 b/fuzz/corpus/fuzz_readerutils_workflow/468576f62a12957c55315c1617c68fd1dbfa20a8
new file mode 100644
index 000000000..59ff05d53
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/468576f62a12957c55315c1617c68fd1dbfa20a8
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/46d4c65728fafc6f4e156d3380cd0d966973f6f8 b/fuzz/corpus/fuzz_readerutils_workflow/46d4c65728fafc6f4e156d3380cd0d966973f6f8
new file mode 100644
index 000000000..136bef4df
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/46d4c65728fafc6f4e156d3380cd0d966973f6f8
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/474ccf91ec3b4c4dd4cb210c5092846e0ec9da4a b/fuzz/corpus/fuzz_readerutils_workflow/474ccf91ec3b4c4dd4cb210c5092846e0ec9da4a
new file mode 100644
index 000000000..6b1efb9df
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/474ccf91ec3b4c4dd4cb210c5092846e0ec9da4a
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/47abec0853800c5b5cb56b002610492d0a182024 b/fuzz/corpus/fuzz_readerutils_workflow/47abec0853800c5b5cb56b002610492d0a182024
new file mode 100644
index 000000000..e30dc5796
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/47abec0853800c5b5cb56b002610492d0a182024
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/48c603353c82a2c84eb3927b6d89833363dda03b b/fuzz/corpus/fuzz_readerutils_workflow/48c603353c82a2c84eb3927b6d89833363dda03b
new file mode 100644
index 000000000..d16628467
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/48c603353c82a2c84eb3927b6d89833363dda03b
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/496bf85e1bd58578d6da8879b4497395d1ed6c02 b/fuzz/corpus/fuzz_readerutils_workflow/496bf85e1bd58578d6da8879b4497395d1ed6c02
new file mode 100644
index 000000000..3f1a9c3e9
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/496bf85e1bd58578d6da8879b4497395d1ed6c02
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/49a3010fd95adf83155b59cdc733af98c1833752 b/fuzz/corpus/fuzz_readerutils_workflow/49a3010fd95adf83155b59cdc733af98c1833752
new file mode 100644
index 000000000..1ac778e41
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/49a3010fd95adf83155b59cdc733af98c1833752
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/51028771d680f196d8efcb0f27358354ba904751 b/fuzz/corpus/fuzz_readerutils_workflow/51028771d680f196d8efcb0f27358354ba904751
new file mode 100644
index 000000000..1fef32e18
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/51028771d680f196d8efcb0f27358354ba904751
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/516afa80c5e3e4a051f766b2f749225fc5c44bbe b/fuzz/corpus/fuzz_readerutils_workflow/516afa80c5e3e4a051f766b2f749225fc5c44bbe
new file mode 100644
index 000000000..6bac2d547
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/516afa80c5e3e4a051f766b2f749225fc5c44bbe
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/55a37dadd855887b7005fc42e6766b9665411795 b/fuzz/corpus/fuzz_readerutils_workflow/55a37dadd855887b7005fc42e6766b9665411795
new file mode 100644
index 000000000..c04c17b87
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/55a37dadd855887b7005fc42e6766b9665411795
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/55cce0492e95181e8795861ef202724766939008 b/fuzz/corpus/fuzz_readerutils_workflow/55cce0492e95181e8795861ef202724766939008
new file mode 100644
index 000000000..33cb61e20
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/55cce0492e95181e8795861ef202724766939008
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/56780ba9142da037de8d6c6670a68907f46e8a08 b/fuzz/corpus/fuzz_readerutils_workflow/56780ba9142da037de8d6c6670a68907f46e8a08
new file mode 100644
index 000000000..673513b3d
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/56780ba9142da037de8d6c6670a68907f46e8a08
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/58ce4e83796759c0912afdea0721ea21d94acc76 b/fuzz/corpus/fuzz_readerutils_workflow/58ce4e83796759c0912afdea0721ea21d94acc76
new file mode 100644
index 000000000..a7f173f43
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/58ce4e83796759c0912afdea0721ea21d94acc76
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/5972f84630cd752f5a368cefb5817df3df4d85af b/fuzz/corpus/fuzz_readerutils_workflow/5972f84630cd752f5a368cefb5817df3df4d85af
new file mode 100644
index 000000000..be6780f32
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/5972f84630cd752f5a368cefb5817df3df4d85af
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/5f3722c372995342754e37cd95b3a5c4d27bc7d2 b/fuzz/corpus/fuzz_readerutils_workflow/5f3722c372995342754e37cd95b3a5c4d27bc7d2
new file mode 100644
index 000000000..3ac2941f2
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/5f3722c372995342754e37cd95b3a5c4d27bc7d2
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/624ff4bf5ea930e0bb0af655ea4e024734c0a9e3 b/fuzz/corpus/fuzz_readerutils_workflow/624ff4bf5ea930e0bb0af655ea4e024734c0a9e3
new file mode 100644
index 000000000..debb0a15b
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/624ff4bf5ea930e0bb0af655ea4e024734c0a9e3
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/62cb9f6d6b6bd9c3ec51eaaff5e1407115ec87d3 b/fuzz/corpus/fuzz_readerutils_workflow/62cb9f6d6b6bd9c3ec51eaaff5e1407115ec87d3
new file mode 100644
index 000000000..203999a0a
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/62cb9f6d6b6bd9c3ec51eaaff5e1407115ec87d3
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/63cb202b33743fe9b23c6343da7685163732f361 b/fuzz/corpus/fuzz_readerutils_workflow/63cb202b33743fe9b23c6343da7685163732f361
new file mode 100644
index 000000000..e9388b7aa
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/63cb202b33743fe9b23c6343da7685163732f361
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/6411ca4804a715592177d04b67132aecbdcde8e9 b/fuzz/corpus/fuzz_readerutils_workflow/6411ca4804a715592177d04b67132aecbdcde8e9
new file mode 100644
index 000000000..01fb4ddc5
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/6411ca4804a715592177d04b67132aecbdcde8e9
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/65a1bac758d6154f298ac67a87746aabea8c56fc b/fuzz/corpus/fuzz_readerutils_workflow/65a1bac758d6154f298ac67a87746aabea8c56fc
new file mode 100644
index 000000000..2520a1ff4
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/65a1bac758d6154f298ac67a87746aabea8c56fc
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/65a446926807cbf760a4e31a5c648b2a59d7192c b/fuzz/corpus/fuzz_readerutils_workflow/65a446926807cbf760a4e31a5c648b2a59d7192c
new file mode 100644
index 000000000..aa2b03bb9
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/65a446926807cbf760a4e31a5c648b2a59d7192c
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/66af0e46115df14d08adea2e069d87463cda331e b/fuzz/corpus/fuzz_readerutils_workflow/66af0e46115df14d08adea2e069d87463cda331e
new file mode 100644
index 000000000..33776a5a3
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/66af0e46115df14d08adea2e069d87463cda331e
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/67f8fd2b4bbbf73e62b8604027b8a1573fa55834 b/fuzz/corpus/fuzz_readerutils_workflow/67f8fd2b4bbbf73e62b8604027b8a1573fa55834
new file mode 100644
index 000000000..b9bd18e1f
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/67f8fd2b4bbbf73e62b8604027b8a1573fa55834
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/6f7eb638adbaf1ffd460b601ff5ac2bce071e885 b/fuzz/corpus/fuzz_readerutils_workflow/6f7eb638adbaf1ffd460b601ff5ac2bce071e885
new file mode 100644
index 000000000..fb6d8cd54
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/6f7eb638adbaf1ffd460b601ff5ac2bce071e885
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/6fa5fdbb213d7ee42a342de2366e2b0fff27d5ab b/fuzz/corpus/fuzz_readerutils_workflow/6fa5fdbb213d7ee42a342de2366e2b0fff27d5ab
new file mode 100644
index 000000000..cb7eac649
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/6fa5fdbb213d7ee42a342de2366e2b0fff27d5ab
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/7369a089d82883519dd0806cae2b2f67588a6745 b/fuzz/corpus/fuzz_readerutils_workflow/7369a089d82883519dd0806cae2b2f67588a6745
new file mode 100644
index 000000000..20727dcfe
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/7369a089d82883519dd0806cae2b2f67588a6745
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/73baeff6bbb9e9c7423c2becbaeeaf31b2c8acb6 b/fuzz/corpus/fuzz_readerutils_workflow/73baeff6bbb9e9c7423c2becbaeeaf31b2c8acb6
new file mode 100644
index 000000000..4dce4f8e5
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/73baeff6bbb9e9c7423c2becbaeeaf31b2c8acb6
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/75d68facc4ca176d16b124f83627658422c2ffd0 b/fuzz/corpus/fuzz_readerutils_workflow/75d68facc4ca176d16b124f83627658422c2ffd0
new file mode 100644
index 000000000..4ed108fad
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/75d68facc4ca176d16b124f83627658422c2ffd0
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/77afcba6c3b22545534c5ac8e7782500bd0f0693 b/fuzz/corpus/fuzz_readerutils_workflow/77afcba6c3b22545534c5ac8e7782500bd0f0693
new file mode 100644
index 000000000..ddc57c0d2
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/77afcba6c3b22545534c5ac8e7782500bd0f0693
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/77ce47b8b2c33abfc984796ede41173d663dd1be b/fuzz/corpus/fuzz_readerutils_workflow/77ce47b8b2c33abfc984796ede41173d663dd1be
new file mode 100644
index 000000000..6a1c97a52
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/77ce47b8b2c33abfc984796ede41173d663dd1be
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/792b7e5b12837e102fd1b820eda366327effc716 b/fuzz/corpus/fuzz_readerutils_workflow/792b7e5b12837e102fd1b820eda366327effc716
new file mode 100644
index 000000000..da7a67a1a
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/792b7e5b12837e102fd1b820eda366327effc716
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/797b751b252185f541a9c3364303908aff7c5cfd b/fuzz/corpus/fuzz_readerutils_workflow/797b751b252185f541a9c3364303908aff7c5cfd
new file mode 100644
index 000000000..74bfffc74
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/797b751b252185f541a9c3364303908aff7c5cfd
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/7b19ab78c99b7f1104029f16eddbb426c13f63b2 b/fuzz/corpus/fuzz_readerutils_workflow/7b19ab78c99b7f1104029f16eddbb426c13f63b2
new file mode 100644
index 000000000..49d64f93a
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/7b19ab78c99b7f1104029f16eddbb426c13f63b2
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/7c0b375813190169f8ff8ad1c8010b79ae75dcdc b/fuzz/corpus/fuzz_readerutils_workflow/7c0b375813190169f8ff8ad1c8010b79ae75dcdc
new file mode 100644
index 000000000..942fa0af5
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/7c0b375813190169f8ff8ad1c8010b79ae75dcdc
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/7c68fb5e323a2a8821685245f0b91cd98206c328 b/fuzz/corpus/fuzz_readerutils_workflow/7c68fb5e323a2a8821685245f0b91cd98206c328
new file mode 100644
index 000000000..96eb0196a
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/7c68fb5e323a2a8821685245f0b91cd98206c328
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/7cdc589518e31efecde46dbdfca98f5b94a69bae b/fuzz/corpus/fuzz_readerutils_workflow/7cdc589518e31efecde46dbdfca98f5b94a69bae
new file mode 100644
index 000000000..2b205202d
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/7cdc589518e31efecde46dbdfca98f5b94a69bae
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/7ebaf4a69896bda96f72ae29069597ea58a4d105 b/fuzz/corpus/fuzz_readerutils_workflow/7ebaf4a69896bda96f72ae29069597ea58a4d105
new file mode 100644
index 000000000..785933ed3
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/7ebaf4a69896bda96f72ae29069597ea58a4d105
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/8008f656b228e87dd3f4264cbe614b5067139a13 b/fuzz/corpus/fuzz_readerutils_workflow/8008f656b228e87dd3f4264cbe614b5067139a13
new file mode 100644
index 000000000..debfc134c
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/8008f656b228e87dd3f4264cbe614b5067139a13
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/859604dbfc00d0dfd8c804490ec6a1b496a4b959 b/fuzz/corpus/fuzz_readerutils_workflow/859604dbfc00d0dfd8c804490ec6a1b496a4b959
new file mode 100644
index 000000000..bce0d97ae
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/859604dbfc00d0dfd8c804490ec6a1b496a4b959
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/87a49194fd3b289c5f5525a76b759cd7f63c9f64 b/fuzz/corpus/fuzz_readerutils_workflow/87a49194fd3b289c5f5525a76b759cd7f63c9f64
new file mode 100644
index 000000000..cef771912
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/87a49194fd3b289c5f5525a76b759cd7f63c9f64
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/88e1ae5f07402f215ad1d6393e5d726677441c49 b/fuzz/corpus/fuzz_readerutils_workflow/88e1ae5f07402f215ad1d6393e5d726677441c49
new file mode 100644
index 000000000..b71185b4f
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/88e1ae5f07402f215ad1d6393e5d726677441c49
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/8a38f2f2d1fc8499d9f88fd311ecd03cf5cfb721 b/fuzz/corpus/fuzz_readerutils_workflow/8a38f2f2d1fc8499d9f88fd311ecd03cf5cfb721
new file mode 100644
index 000000000..3a5ee11e7
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/8a38f2f2d1fc8499d9f88fd311ecd03cf5cfb721
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/8ac67dfcb6fc74278855a4618fe3ac718015ab0b b/fuzz/corpus/fuzz_readerutils_workflow/8ac67dfcb6fc74278855a4618fe3ac718015ab0b
new file mode 100644
index 000000000..5828eec0d
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/8ac67dfcb6fc74278855a4618fe3ac718015ab0b
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/8e96da6d2cffb0814615807a4da150a032513b5a b/fuzz/corpus/fuzz_readerutils_workflow/8e96da6d2cffb0814615807a4da150a032513b5a
new file mode 100644
index 000000000..a03d26a01
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/8e96da6d2cffb0814615807a4da150a032513b5a
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/8fdb4a9ddb206424b11844528a727af0dc76adab b/fuzz/corpus/fuzz_readerutils_workflow/8fdb4a9ddb206424b11844528a727af0dc76adab
new file mode 100644
index 000000000..ec9b08ed3
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/8fdb4a9ddb206424b11844528a727af0dc76adab
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/90c07a76c94ab7988b646e3be73b2ff5d060a017 b/fuzz/corpus/fuzz_readerutils_workflow/90c07a76c94ab7988b646e3be73b2ff5d060a017
new file mode 100644
index 000000000..c4d3ad3b5
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/90c07a76c94ab7988b646e3be73b2ff5d060a017
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/915a1a753abfbc88ecd8484748c4beaf0671ea33 b/fuzz/corpus/fuzz_readerutils_workflow/915a1a753abfbc88ecd8484748c4beaf0671ea33
new file mode 100644
index 000000000..8a2ada8c8
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/915a1a753abfbc88ecd8484748c4beaf0671ea33
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/91b6ee8b067670cbb8e8953829d6a1cfd78992dc b/fuzz/corpus/fuzz_readerutils_workflow/91b6ee8b067670cbb8e8953829d6a1cfd78992dc
new file mode 100644
index 000000000..ff9f435ef
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/91b6ee8b067670cbb8e8953829d6a1cfd78992dc
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/91c1339f8849d302ab5fd94436b3f4bb8634f1a1 b/fuzz/corpus/fuzz_readerutils_workflow/91c1339f8849d302ab5fd94436b3f4bb8634f1a1
new file mode 100644
index 000000000..c719d5fb1
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/91c1339f8849d302ab5fd94436b3f4bb8634f1a1
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/9514d3d39d5c1144018ca1acc46a277e66f0f337 b/fuzz/corpus/fuzz_readerutils_workflow/9514d3d39d5c1144018ca1acc46a277e66f0f337
new file mode 100644
index 000000000..ef8de2c60
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/9514d3d39d5c1144018ca1acc46a277e66f0f337
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/96791f51f2dc40b4c300dfc22e882132f63cd0c4 b/fuzz/corpus/fuzz_readerutils_workflow/96791f51f2dc40b4c300dfc22e882132f63cd0c4
new file mode 100644
index 000000000..5f15b19e6
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/96791f51f2dc40b4c300dfc22e882132f63cd0c4
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/97752cb08d231a90ae8d29d8981bba158387a9d0 b/fuzz/corpus/fuzz_readerutils_workflow/97752cb08d231a90ae8d29d8981bba158387a9d0
new file mode 100644
index 000000000..a88eff688
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/97752cb08d231a90ae8d29d8981bba158387a9d0
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/98b894f014ad21e58b273488e9883499eb416631 b/fuzz/corpus/fuzz_readerutils_workflow/98b894f014ad21e58b273488e9883499eb416631
new file mode 100644
index 000000000..a97d48230
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/98b894f014ad21e58b273488e9883499eb416631
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/99530c1d1b1b99b32c1dbc659e5a61c94f4c59e4 b/fuzz/corpus/fuzz_readerutils_workflow/99530c1d1b1b99b32c1dbc659e5a61c94f4c59e4
new file mode 100644
index 000000000..479498878
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/99530c1d1b1b99b32c1dbc659e5a61c94f4c59e4
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/9a1903df2795483996586290cff2cd49152d0e25 b/fuzz/corpus/fuzz_readerutils_workflow/9a1903df2795483996586290cff2cd49152d0e25
new file mode 100644
index 000000000..11545224e
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/9a1903df2795483996586290cff2cd49152d0e25
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/9c6092334e04729518aa749fb49295666a486d05 b/fuzz/corpus/fuzz_readerutils_workflow/9c6092334e04729518aa749fb49295666a486d05
new file mode 100644
index 000000000..66a6b551b
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/9c6092334e04729518aa749fb49295666a486d05
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/9e6de6c53ab115c26e466fb67082217c68620847 b/fuzz/corpus/fuzz_readerutils_workflow/9e6de6c53ab115c26e466fb67082217c68620847
new file mode 100644
index 000000000..3e31a07df
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/9e6de6c53ab115c26e466fb67082217c68620847
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/9ebcf03a78d9e5b22b07a64a193d12fce53db53b b/fuzz/corpus/fuzz_readerutils_workflow/9ebcf03a78d9e5b22b07a64a193d12fce53db53b
new file mode 100644
index 000000000..d0942b76c
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/9ebcf03a78d9e5b22b07a64a193d12fce53db53b
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/9f81c81767b6ed9217bdab9b5d1d6989ed0fb98c b/fuzz/corpus/fuzz_readerutils_workflow/9f81c81767b6ed9217bdab9b5d1d6989ed0fb98c
new file mode 100644
index 000000000..cb6dedeeb
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/9f81c81767b6ed9217bdab9b5d1d6989ed0fb98c
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/a0bcbb1e454bf69804a60094656ea29812d25246 b/fuzz/corpus/fuzz_readerutils_workflow/a0bcbb1e454bf69804a60094656ea29812d25246
new file mode 100644
index 000000000..99ae40634
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/a0bcbb1e454bf69804a60094656ea29812d25246
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/a0e84a868e942e08c2162eb4ac2b9ba2d7de1f20 b/fuzz/corpus/fuzz_readerutils_workflow/a0e84a868e942e08c2162eb4ac2b9ba2d7de1f20
new file mode 100644
index 000000000..d9a0e4fdf
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/a0e84a868e942e08c2162eb4ac2b9ba2d7de1f20
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/a17002d2c4cd10f9fceea2c76ad7d80b1a626206 b/fuzz/corpus/fuzz_readerutils_workflow/a17002d2c4cd10f9fceea2c76ad7d80b1a626206
new file mode 100644
index 000000000..4edbc7691
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/a17002d2c4cd10f9fceea2c76ad7d80b1a626206
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/a189ca87d4aea9b07d157a4b9d09aaa454b44d1b b/fuzz/corpus/fuzz_readerutils_workflow/a189ca87d4aea9b07d157a4b9d09aaa454b44d1b
new file mode 100644
index 000000000..9e7b456c7
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/a189ca87d4aea9b07d157a4b9d09aaa454b44d1b
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/a260f1b93995a62eef5abce2c7d8df99c18f360e b/fuzz/corpus/fuzz_readerutils_workflow/a260f1b93995a62eef5abce2c7d8df99c18f360e
new file mode 100644
index 000000000..d3ca46a57
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/a260f1b93995a62eef5abce2c7d8df99c18f360e
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/a3d7826ab9420c792dce29512d43bf1f8e25e0eb b/fuzz/corpus/fuzz_readerutils_workflow/a3d7826ab9420c792dce29512d43bf1f8e25e0eb
new file mode 100644
index 000000000..fc43931e9
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/a3d7826ab9420c792dce29512d43bf1f8e25e0eb
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/a3f1ac4cd48d261c274fd23331cbc9060d76ae28 b/fuzz/corpus/fuzz_readerutils_workflow/a3f1ac4cd48d261c274fd23331cbc9060d76ae28
new file mode 100644
index 000000000..2704d78cc
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/a3f1ac4cd48d261c274fd23331cbc9060d76ae28
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/a4bb8aacf4189a8a91385cea4a9e8275b166d826 b/fuzz/corpus/fuzz_readerutils_workflow/a4bb8aacf4189a8a91385cea4a9e8275b166d826
new file mode 100644
index 000000000..479c474e6
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/a4bb8aacf4189a8a91385cea4a9e8275b166d826
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/a545a168f722093ab56200c3c55fb43b6e31c934 b/fuzz/corpus/fuzz_readerutils_workflow/a545a168f722093ab56200c3c55fb43b6e31c934
new file mode 100644
index 000000000..66313a8be
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/a545a168f722093ab56200c3c55fb43b6e31c934
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/a7b0199b7d022a1f873dba97a1fedf7631bcfe88 b/fuzz/corpus/fuzz_readerutils_workflow/a7b0199b7d022a1f873dba97a1fedf7631bcfe88
new file mode 100644
index 000000000..f689da952
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/a7b0199b7d022a1f873dba97a1fedf7631bcfe88
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/a81068b98bcf85f6a116068dae897ea6cd43d137 b/fuzz/corpus/fuzz_readerutils_workflow/a81068b98bcf85f6a116068dae897ea6cd43d137
new file mode 100644
index 000000000..3e0268359
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/a81068b98bcf85f6a116068dae897ea6cd43d137
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/a8233c1f4d7eb4e1b3774db423ebde1d529e4b5a b/fuzz/corpus/fuzz_readerutils_workflow/a8233c1f4d7eb4e1b3774db423ebde1d529e4b5a
new file mode 100644
index 000000000..2b6357739
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/a8233c1f4d7eb4e1b3774db423ebde1d529e4b5a
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/af64940a79f41b38747a6356299c68ca933845da b/fuzz/corpus/fuzz_readerutils_workflow/af64940a79f41b38747a6356299c68ca933845da
new file mode 100644
index 000000000..ea7c2ab39
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/af64940a79f41b38747a6356299c68ca933845da
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/b4e9c892e36289e483f123cc92b4a7cbff210114 b/fuzz/corpus/fuzz_readerutils_workflow/b4e9c892e36289e483f123cc92b4a7cbff210114
new file mode 100644
index 000000000..b5866a224
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/b4e9c892e36289e483f123cc92b4a7cbff210114
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/b521a64435ab603aeba639354b2ed7b01689422a b/fuzz/corpus/fuzz_readerutils_workflow/b521a64435ab603aeba639354b2ed7b01689422a
new file mode 100644
index 000000000..fcb29c8c0
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/b521a64435ab603aeba639354b2ed7b01689422a
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/ba8cd5733accb37b3a3a0032ea01f2e3713294ac b/fuzz/corpus/fuzz_readerutils_workflow/ba8cd5733accb37b3a3a0032ea01f2e3713294ac
new file mode 100644
index 000000000..8eea9ca46
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/ba8cd5733accb37b3a3a0032ea01f2e3713294ac
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/bc6a06e61f510fee31dade643babff3240e6b486 b/fuzz/corpus/fuzz_readerutils_workflow/bc6a06e61f510fee31dade643babff3240e6b486
new file mode 100644
index 000000000..d47fa5ddb
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/bc6a06e61f510fee31dade643babff3240e6b486
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/bdd8143ce8db20ed85a7a86442c959bc682ce245 b/fuzz/corpus/fuzz_readerutils_workflow/bdd8143ce8db20ed85a7a86442c959bc682ce245
new file mode 100644
index 000000000..46b4fe8a5
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/bdd8143ce8db20ed85a7a86442c959bc682ce245
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/bf4f1c69a97d061f274a3a20e09a7b8f93063561 b/fuzz/corpus/fuzz_readerutils_workflow/bf4f1c69a97d061f274a3a20e09a7b8f93063561
new file mode 100644
index 000000000..199048488
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/bf4f1c69a97d061f274a3a20e09a7b8f93063561
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/bf6912d42f6100be870b8934feb995459b085be8 b/fuzz/corpus/fuzz_readerutils_workflow/bf6912d42f6100be870b8934feb995459b085be8
new file mode 100644
index 000000000..0f3b86994
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/bf6912d42f6100be870b8934feb995459b085be8
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/c04865c2e6e2549a0c57427b2f785901e6da8073 b/fuzz/corpus/fuzz_readerutils_workflow/c04865c2e6e2549a0c57427b2f785901e6da8073
new file mode 100644
index 000000000..5c46ee491
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/c04865c2e6e2549a0c57427b2f785901e6da8073
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/c0b1de4298bb79b07ebeb6d96214429ad4596d6e b/fuzz/corpus/fuzz_readerutils_workflow/c0b1de4298bb79b07ebeb6d96214429ad4596d6e
new file mode 100644
index 000000000..c129e6b9e
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/c0b1de4298bb79b07ebeb6d96214429ad4596d6e
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/c101aea7854ff9e2b12b8d336da9e862852f9d46 b/fuzz/corpus/fuzz_readerutils_workflow/c101aea7854ff9e2b12b8d336da9e862852f9d46
new file mode 100644
index 000000000..42e0ef81d
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/c101aea7854ff9e2b12b8d336da9e862852f9d46
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/c2687483a286d1e229c7a849ef096eb9d53e8ac4 b/fuzz/corpus/fuzz_readerutils_workflow/c2687483a286d1e229c7a849ef096eb9d53e8ac4
new file mode 100644
index 000000000..a2baca00f
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/c2687483a286d1e229c7a849ef096eb9d53e8ac4
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/c6694464b8bfad1185539ead7dcbdac6fcc95391 b/fuzz/corpus/fuzz_readerutils_workflow/c6694464b8bfad1185539ead7dcbdac6fcc95391
new file mode 100644
index 000000000..bf21a7a98
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/c6694464b8bfad1185539ead7dcbdac6fcc95391
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/c6c8a932e97f5216defa5e46d5d82206bc50fdcf b/fuzz/corpus/fuzz_readerutils_workflow/c6c8a932e97f5216defa5e46d5d82206bc50fdcf
new file mode 100644
index 000000000..59457f75b
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/c6c8a932e97f5216defa5e46d5d82206bc50fdcf
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/c8c82e6d8351b3e9d36a2293d3e3fe95f0ee293d b/fuzz/corpus/fuzz_readerutils_workflow/c8c82e6d8351b3e9d36a2293d3e3fe95f0ee293d
new file mode 100644
index 000000000..e39dacf89
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/c8c82e6d8351b3e9d36a2293d3e3fe95f0ee293d
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/cf33887daa08678c662b0903b469fabd97027189 b/fuzz/corpus/fuzz_readerutils_workflow/cf33887daa08678c662b0903b469fabd97027189
new file mode 100644
index 000000000..5f3501e50
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/cf33887daa08678c662b0903b469fabd97027189
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/cf6a6b1744db1cabf755f17ce56d16797c9d9018 b/fuzz/corpus/fuzz_readerutils_workflow/cf6a6b1744db1cabf755f17ce56d16797c9d9018
new file mode 100644
index 000000000..e71b9daea
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/cf6a6b1744db1cabf755f17ce56d16797c9d9018
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/d0b0d4fb703c4e81f48254cf8d066a7cd65768c0 b/fuzz/corpus/fuzz_readerutils_workflow/d0b0d4fb703c4e81f48254cf8d066a7cd65768c0
new file mode 100644
index 000000000..ee57492d1
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/d0b0d4fb703c4e81f48254cf8d066a7cd65768c0
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/d0fb515dba7042e1ef9d0cf5f93eec88e7d27d0c b/fuzz/corpus/fuzz_readerutils_workflow/d0fb515dba7042e1ef9d0cf5f93eec88e7d27d0c
new file mode 100644
index 000000000..20d89ecc3
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/d0fb515dba7042e1ef9d0cf5f93eec88e7d27d0c
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/d4d693c15db73b668f0748940d03bddcfa39991e b/fuzz/corpus/fuzz_readerutils_workflow/d4d693c15db73b668f0748940d03bddcfa39991e
new file mode 100644
index 000000000..571d13e55
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/d4d693c15db73b668f0748940d03bddcfa39991e
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/d72a91aaba24b58591cdec36f89e52011107ac8f b/fuzz/corpus/fuzz_readerutils_workflow/d72a91aaba24b58591cdec36f89e52011107ac8f
new file mode 100644
index 000000000..df5c0a74f
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/d72a91aaba24b58591cdec36f89e52011107ac8f
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/d735fa6a32d91dd8fc5f7a9f1d744f3ad97c05ea b/fuzz/corpus/fuzz_readerutils_workflow/d735fa6a32d91dd8fc5f7a9f1d744f3ad97c05ea
new file mode 100644
index 000000000..d7c91ad89
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/d735fa6a32d91dd8fc5f7a9f1d744f3ad97c05ea
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/d94984a0fa4023b6ead5fa195e7301d64d10c743 b/fuzz/corpus/fuzz_readerutils_workflow/d94984a0fa4023b6ead5fa195e7301d64d10c743
new file mode 100644
index 000000000..11ee7dd38
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/d94984a0fa4023b6ead5fa195e7301d64d10c743
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/d986e3eab6f48d710133838f12eeb407dcc2f4b7 b/fuzz/corpus/fuzz_readerutils_workflow/d986e3eab6f48d710133838f12eeb407dcc2f4b7
new file mode 100644
index 000000000..6dbcd5035
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/d986e3eab6f48d710133838f12eeb407dcc2f4b7
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/df46c4a8733efb573529162f6bf4dab73c154f67 b/fuzz/corpus/fuzz_readerutils_workflow/df46c4a8733efb573529162f6bf4dab73c154f67
new file mode 100644
index 000000000..149a7b861
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/df46c4a8733efb573529162f6bf4dab73c154f67
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/dfe8a6770dd1417c08b7176083c78955c0d84925 b/fuzz/corpus/fuzz_readerutils_workflow/dfe8a6770dd1417c08b7176083c78955c0d84925
new file mode 100644
index 000000000..c8a067388
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/dfe8a6770dd1417c08b7176083c78955c0d84925
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/e105d5899fd22b5c5a0646bb587c5c2076e46976 b/fuzz/corpus/fuzz_readerutils_workflow/e105d5899fd22b5c5a0646bb587c5c2076e46976
new file mode 100644
index 000000000..63712b463
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/e105d5899fd22b5c5a0646bb587c5c2076e46976
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/e507a7060c9ea5915aa92f9a305afc3ca1894598 b/fuzz/corpus/fuzz_readerutils_workflow/e507a7060c9ea5915aa92f9a305afc3ca1894598
new file mode 100644
index 000000000..ebdb2bb88
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/e507a7060c9ea5915aa92f9a305afc3ca1894598
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/e689f2e74ab75ccceb60f857d41bc8f6718a1a16 b/fuzz/corpus/fuzz_readerutils_workflow/e689f2e74ab75ccceb60f857d41bc8f6718a1a16
new file mode 100644
index 000000000..08e15c039
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/e689f2e74ab75ccceb60f857d41bc8f6718a1a16
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/e6be21966b72ffdc1a5a443281e1a4e8bc3bee29 b/fuzz/corpus/fuzz_readerutils_workflow/e6be21966b72ffdc1a5a443281e1a4e8bc3bee29
new file mode 100644
index 000000000..378037a3a
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/e6be21966b72ffdc1a5a443281e1a4e8bc3bee29
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/e831e922fe65a0c7f8a4ee2c32c168e7cedc0053 b/fuzz/corpus/fuzz_readerutils_workflow/e831e922fe65a0c7f8a4ee2c32c168e7cedc0053
new file mode 100644
index 000000000..ccbe3bfdd
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/e831e922fe65a0c7f8a4ee2c32c168e7cedc0053
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/e94995cf920160ef91d8085cd49d8f07af928a6b b/fuzz/corpus/fuzz_readerutils_workflow/e94995cf920160ef91d8085cd49d8f07af928a6b
new file mode 100644
index 000000000..cd6b0d49a
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/e94995cf920160ef91d8085cd49d8f07af928a6b
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/e987ab77851d1ff1d1524c31e51e65fec04b5a38 b/fuzz/corpus/fuzz_readerutils_workflow/e987ab77851d1ff1d1524c31e51e65fec04b5a38
new file mode 100644
index 000000000..6593c67e2
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/e987ab77851d1ff1d1524c31e51e65fec04b5a38
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/ea72e770d5316f1f390e90f014504b1b29366e72 b/fuzz/corpus/fuzz_readerutils_workflow/ea72e770d5316f1f390e90f014504b1b29366e72
new file mode 100644
index 000000000..01a03ab24
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/ea72e770d5316f1f390e90f014504b1b29366e72
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/ecbf0e112ca482622cb9f295b33f37c62cfd48da b/fuzz/corpus/fuzz_readerutils_workflow/ecbf0e112ca482622cb9f295b33f37c62cfd48da
new file mode 100644
index 000000000..a94657221
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/ecbf0e112ca482622cb9f295b33f37c62cfd48da
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/ed28847260e2c1e286effd0774c2ae13d15961c8 b/fuzz/corpus/fuzz_readerutils_workflow/ed28847260e2c1e286effd0774c2ae13d15961c8
new file mode 100644
index 000000000..5a48b104d
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/ed28847260e2c1e286effd0774c2ae13d15961c8
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/eea728378ec128a8d23bf29024e43cfff1b1db5c b/fuzz/corpus/fuzz_readerutils_workflow/eea728378ec128a8d23bf29024e43cfff1b1db5c
new file mode 100644
index 000000000..d59b70c71
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/eea728378ec128a8d23bf29024e43cfff1b1db5c
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/eeda03a853b8431fb422f917481ce2a801fffc50 b/fuzz/corpus/fuzz_readerutils_workflow/eeda03a853b8431fb422f917481ce2a801fffc50
new file mode 100644
index 000000000..eb6598a5a
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/eeda03a853b8431fb422f917481ce2a801fffc50
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/ef58730b55180b61f3db96721fdb27b035053e4f b/fuzz/corpus/fuzz_readerutils_workflow/ef58730b55180b61f3db96721fdb27b035053e4f
new file mode 100644
index 000000000..8a41c655d
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/ef58730b55180b61f3db96721fdb27b035053e4f
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/f0715a803dc89edd79a1d0d44341d83c19ea2c45 b/fuzz/corpus/fuzz_readerutils_workflow/f0715a803dc89edd79a1d0d44341d83c19ea2c45
new file mode 100644
index 000000000..2266f1303
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/f0715a803dc89edd79a1d0d44341d83c19ea2c45
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/f0ad125b86c198869068e44465a39284b71bac7f b/fuzz/corpus/fuzz_readerutils_workflow/f0ad125b86c198869068e44465a39284b71bac7f
new file mode 100644
index 000000000..c815bfa37
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/f0ad125b86c198869068e44465a39284b71bac7f
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/f184c2aeca47465957b2914d19481bdba0d100de b/fuzz/corpus/fuzz_readerutils_workflow/f184c2aeca47465957b2914d19481bdba0d100de
new file mode 100644
index 000000000..3115344df
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/f184c2aeca47465957b2914d19481bdba0d100de
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/f1a126590942e7b0073e821b04724c53515e93d5 b/fuzz/corpus/fuzz_readerutils_workflow/f1a126590942e7b0073e821b04724c53515e93d5
new file mode 100644
index 000000000..8089ab017
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/f1a126590942e7b0073e821b04724c53515e93d5
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/f1fc48f6a7fb1bcca8cdbe649e77627d24a78451 b/fuzz/corpus/fuzz_readerutils_workflow/f1fc48f6a7fb1bcca8cdbe649e77627d24a78451
new file mode 100644
index 000000000..ab5002e55
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/f1fc48f6a7fb1bcca8cdbe649e77627d24a78451
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/f270437c14803ca1dc2496cf1da97fc3631dae80 b/fuzz/corpus/fuzz_readerutils_workflow/f270437c14803ca1dc2496cf1da97fc3631dae80
new file mode 100644
index 000000000..623923db4
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/f270437c14803ca1dc2496cf1da97fc3631dae80
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/f3008e7908e519a9e14572b186496d625c513a39 b/fuzz/corpus/fuzz_readerutils_workflow/f3008e7908e519a9e14572b186496d625c513a39
new file mode 100644
index 000000000..f3e592ed4
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/f3008e7908e519a9e14572b186496d625c513a39
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/f6d9755649b135c7b127b13c29f1f7e4f3623491 b/fuzz/corpus/fuzz_readerutils_workflow/f6d9755649b135c7b127b13c29f1f7e4f3623491
new file mode 100644
index 000000000..4bc98bbd6
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/f6d9755649b135c7b127b13c29f1f7e4f3623491
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/f8c1457011196c9cc9cf6bd6f369eb37ac93326c b/fuzz/corpus/fuzz_readerutils_workflow/f8c1457011196c9cc9cf6bd6f369eb37ac93326c
new file mode 100644
index 000000000..e1ba7787c
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/f8c1457011196c9cc9cf6bd6f369eb37ac93326c
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/f91bb915ff2dfd59180e8ec6bfd5811f77ef9442 b/fuzz/corpus/fuzz_readerutils_workflow/f91bb915ff2dfd59180e8ec6bfd5811f77ef9442
new file mode 100644
index 000000000..7689b90fb
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/f91bb915ff2dfd59180e8ec6bfd5811f77ef9442
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/fa66579f8dc8737569a465fe665903a2a004dc28 b/fuzz/corpus/fuzz_readerutils_workflow/fa66579f8dc8737569a465fe665903a2a004dc28
new file mode 100644
index 000000000..8acc8abea
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/fa66579f8dc8737569a465fe665903a2a004dc28
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/fae8b32e45f2d31704dad2d98c87dfc3770ee09d b/fuzz/corpus/fuzz_readerutils_workflow/fae8b32e45f2d31704dad2d98c87dfc3770ee09d
new file mode 100644
index 000000000..9bb761c87
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/fae8b32e45f2d31704dad2d98c87dfc3770ee09d
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/fbb813323538cf9dfff8c232c890f93983607169 b/fuzz/corpus/fuzz_readerutils_workflow/fbb813323538cf9dfff8c232c890f93983607169
new file mode 100644
index 000000000..ade85a27e
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/fbb813323538cf9dfff8c232c890f93983607169
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/fbe321e0131acf57da2c884cce0fdd74bff8cbea b/fuzz/corpus/fuzz_readerutils_workflow/fbe321e0131acf57da2c884cce0fdd74bff8cbea
new file mode 100644
index 000000000..ced543560
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/fbe321e0131acf57da2c884cce0fdd74bff8cbea
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/fcbc931914c708a167da6fff80916f77d31e1a06 b/fuzz/corpus/fuzz_readerutils_workflow/fcbc931914c708a167da6fff80916f77d31e1a06
new file mode 100644
index 000000000..7b3f1d048
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/fcbc931914c708a167da6fff80916f77d31e1a06
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/fd14dcd8205886135ea8c3e99febae332e9fa1ca b/fuzz/corpus/fuzz_readerutils_workflow/fd14dcd8205886135ea8c3e99febae332e9fa1ca
new file mode 100644
index 000000000..294976ad1
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/fd14dcd8205886135ea8c3e99febae332e9fa1ca
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/fd528126ebd5d401e849df6e1d170cfc8001363e b/fuzz/corpus/fuzz_readerutils_workflow/fd528126ebd5d401e849df6e1d170cfc8001363e
new file mode 100644
index 000000000..41928763d
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/fd528126ebd5d401e849df6e1d170cfc8001363e
Binary files differ
diff --git a/fuzz/corpus/fuzz_readerutils_workflow/fe3a7045a428196a4712b9e8f3ec9fd957c61517 b/fuzz/corpus/fuzz_readerutils_workflow/fe3a7045a428196a4712b9e8f3ec9fd957c61517
new file mode 100644
index 000000000..e19c371c7
--- /dev/null
+++ b/fuzz/corpus/fuzz_readerutils_workflow/fe3a7045a428196a4712b9e8f3ec9fd957c61517
Binary files differ
diff --git a/fuzz/fuzz_readerutils_parseprotolist.cpp b/fuzz/fuzz_readerutils_parseprotolist.cpp
new file mode 100644
index 000000000..771719a8f
--- /dev/null
+++ b/fuzz/fuzz_readerutils_parseprotolist.cpp
@@ -0,0 +1,49 @@
+#include "ndpi_api.h"
+#include "fuzz_common_code.h"
+#include "reader_util.h"
+
+#include <stdint.h>
+#include <stdio.h>
+#include "fuzzer/FuzzedDataProvider.h"
+
+char *_debug_protocols;
+int nDPI_LogLevel = 0;
+u_int32_t current_ndpi_memory = 0, max_ndpi_memory = 0;
+u_int8_t enable_protocol_guess = 1, enable_payload_analyzer = 0;
+u_int8_t enable_flow_stats = 0;
+u_int8_t human_readeable_string_len = 5;
+u_int8_t max_num_udp_dissected_pkts = 16 /* 8 is enough for most protocols, Signal requires more */, max_num_tcp_dissected_pkts = 80 /* due to telnet */;
+ndpi_init_prefs init_prefs = ndpi_track_flow_payload | ndpi_enable_ja3_plus | ndpi_enable_tcp_ack_payload_heuristic;
+int enable_malloc_bins = 0;
+int malloc_size_stats = 0;
+int max_malloc_bins = 14;
+struct ndpi_bin malloc_bins; /* unused */
+
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ FuzzedDataProvider fuzzed_data(data, size);
+ int inverted_logic;
+ NDPI_PROTOCOL_BITMASK bitmask;
+ char *str;
+
+ /* To allow memory allocation failures */
+ fuzz_set_alloc_callbacks_and_seed(size);
+
+ inverted_logic = size % 2; /* pseudo-random */
+ if(inverted_logic) {
+ NDPI_BITMASK_SET_ALL(bitmask);
+ } else {
+ NDPI_BITMASK_RESET(bitmask);
+ }
+
+ str = (char *)ndpi_malloc(size + 1); /* We need a null-terminated string */
+ if(str) {
+ memcpy(str, data, size);
+ str[size] = '\0';
+
+ parse_proto_name_list(str, &bitmask, inverted_logic);
+
+ ndpi_free(str);
+ }
+ return 0;
+}
diff --git a/fuzz/fuzz_readerutils_workflow.cpp b/fuzz/fuzz_readerutils_workflow.cpp
new file mode 100644
index 000000000..90d0ac094
--- /dev/null
+++ b/fuzz/fuzz_readerutils_workflow.cpp
@@ -0,0 +1,111 @@
+#include "ndpi_api.h"
+#include "fuzz_common_code.h"
+#include "reader_util.h"
+
+#include <stdint.h>
+#include <stdio.h>
+#include "fuzzer/FuzzedDataProvider.h"
+
+extern u_int8_t enable_doh_dot_detection;
+
+char *_debug_protocols;
+int nDPI_LogLevel = 0;
+u_int32_t current_ndpi_memory = 0, max_ndpi_memory = 0;
+u_int8_t enable_protocol_guess = 1, enable_payload_analyzer = 0;
+u_int8_t enable_flow_stats = 0;
+u_int8_t human_readeable_string_len = 5;
+u_int8_t max_num_udp_dissected_pkts = 16 /* 8 is enough for most protocols, Signal requires more */, max_num_tcp_dissected_pkts = 80 /* due to telnet */;
+ndpi_init_prefs init_prefs = ndpi_track_flow_payload | ndpi_enable_ja3_plus | ndpi_enable_tcp_ack_payload_heuristic;
+int enable_malloc_bins = 0;
+int malloc_size_stats = 0;
+int max_malloc_bins = 14;
+struct ndpi_bin malloc_bins; /* unused */
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ FuzzedDataProvider fuzzed_data(data, size);
+ ndpi_workflow *w;
+ struct ndpi_workflow_prefs prefs;
+ pcap_t *pcap_handle;
+ ndpi_serialization_format serialization_format;
+ NDPI_PROTOCOL_BITMASK enabled_bitmask;
+ ndpi_risk flow_risk;
+ const u_char *pkt;
+ struct pcap_pkthdr *header;
+ int r;
+ char errbuf[PCAP_ERRBUF_SIZE];
+ FILE *fd;
+ u_int8_t debug_protos_index;
+ const char *strs[] = { "all",
+ "dns,quic",
+ "+dns:-quic",
+ "all;-http",
+ "foo",
+ "openvpn",
+ "+bar;-foo",
+ NULL,
+ "http;bar" };
+
+
+ /* Data structure: 8 bytes header for random values + pcap file */
+ if(size < 8)
+ return 0;
+
+ /* To allow memory allocation failures */
+ fuzz_set_alloc_callbacks_and_seed(size);
+
+ prefs.decode_tunnels = fuzzed_data.ConsumeBool();
+ prefs.quiet_mode = fuzzed_data.ConsumeBool();
+ prefs.ignore_vlanid = fuzzed_data.ConsumeBool();
+ prefs.num_roots = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ if(prefs.num_roots == 0)
+ prefs.num_roots = 1;
+ prefs.max_ndpi_flows = fuzzed_data.ConsumeIntegral<u_int8_t>();
+
+ serialization_format = static_cast<ndpi_serialization_format>(fuzzed_data.ConsumeIntegralInRange(1, 4));
+
+ debug_protos_index = fuzzed_data.ConsumeIntegralInRange(0, static_cast<int>(sizeof(strs) / sizeof(char *) - 1));
+ _debug_protocols = ndpi_strdup(strs[debug_protos_index]);
+
+ /* byte8 is still unused */
+
+ enable_doh_dot_detection = 1;
+
+ fd = buffer_to_file(data + 8, size - 8);
+ if(fd == NULL) {
+ ndpi_free(_debug_protocols);
+ return 0;
+ }
+
+ pcap_handle = pcap_fopen_offline(fd, errbuf);
+ if(pcap_handle == NULL) {
+ fclose(fd);
+ ndpi_free(_debug_protocols);
+ return 0;
+ }
+ if(ndpi_is_datalink_supported(pcap_datalink(pcap_handle)) == 0) {
+ pcap_close(pcap_handle);
+ ndpi_free(_debug_protocols);
+ return 0;
+ }
+
+ w = ndpi_workflow_init(&prefs, pcap_handle, 1, serialization_format);
+ if(w) {
+ NDPI_BITMASK_SET_ALL(enabled_bitmask);
+ ndpi_set_protocol_detection_bitmask2(w->ndpi_struct, &enabled_bitmask);
+ ndpi_finalize_initialization(w->ndpi_struct);
+
+ header = NULL;
+ r = pcap_next_ex(pcap_handle, &header, &pkt);
+ while (r > 0) {
+ ndpi_workflow_process_packet(w, header, pkt, &flow_risk);
+ r = pcap_next_ex(pcap_handle, &header, &pkt);
+ }
+
+ ndpi_workflow_free(w);
+ }
+ pcap_close(pcap_handle);
+
+ ndpi_free(_debug_protocols);
+
+ return 0;
+}
diff --git a/src/lib/ndpi_domain_classify.c b/src/lib/ndpi_domain_classify.c
index f1a319067..385796e08 100644
--- a/src/lib/ndpi_domain_classify.c
+++ b/src/lib/ndpi_domain_classify.c
@@ -35,7 +35,10 @@
ndpi_domain_classify* ndpi_domain_classify_alloc() {
int i;
ndpi_domain_classify *cat = (ndpi_domain_classify*)ndpi_malloc(sizeof(ndpi_domain_classify));
-
+
+ if(!cat)
+ return NULL;
+
for(i=0; i<MAX_NUM_NDPI_DOMAIN_CLASSIFICATIONS; i++)
cat->classes[i].class_id = 0, cat->classes[i].domains = NULL;