aboutsummaryrefslogtreecommitdiff
path: root/fuzz
diff options
context:
space:
mode:
Diffstat (limited to 'fuzz')
-rw-r--r--fuzz/Makefile.am80
-rw-r--r--fuzz/corpus/fuzz_community_id/1c058ffec9481e8cdfda408b9fa7085e12993f631
-rw-r--r--fuzz/corpus/fuzz_community_id/2a141aaf9ea071fd3b4e3d281c50a6374da29f3e1
-rw-r--r--fuzz/corpus/fuzz_community_id/2aa3f89375e3ecbd22b1170a9066db2dbfca94b51
-rw-r--r--fuzz/corpus/fuzz_community_id/3c722a326b6cee579b995354d0275c86f1c8410c1
-rw-r--r--fuzz/corpus/fuzz_community_id/45e29e99716f52af087b34c1f09c253210172e161
-rw-r--r--fuzz/corpus/fuzz_community_id/46dead9096cafd6fb8fa4f2c60012f3d041a20bd1
-rw-r--r--fuzz/corpus/fuzz_community_id/4a8f2a58a6a4cbfc71faa980308fb7cc5ee1f4f01
-rw-r--r--fuzz/corpus/fuzz_community_id/58e6b3a414a1e090dfc6029add0f3555ccba127f1
-rw-r--r--fuzz/corpus/fuzz_community_id/63ca47311f24473a100f131ad9ae08128b1690221
-rw-r--r--fuzz/corpus/fuzz_community_id/753c246d759eb3bd906f929b77d86c8915a655f71
-rw-r--r--fuzz/corpus/fuzz_community_id/82d71306d4eddb7279da80cd7c1be092b642eca81
-rw-r--r--fuzz/corpus/fuzz_community_id/a478a85347f063f3f854f5d976c01961712702421
-rw-r--r--fuzz/corpus/fuzz_community_id/acb348360f8e8b083fec3515d39f58e4cabecee7bin0 -> 15 bytes
-rw-r--r--fuzz/corpus/fuzz_community_id/bb8face00f6b5c75a869f51b660c0f4995b362311
-rw-r--r--fuzz/corpus/fuzz_community_id/c88c17fdae9667e8785ea750a50a5d7f3ca5b4651
-rw-r--r--fuzz/corpus/fuzz_community_id/ca4497abb2cc0324de9f909323ceffcb76f38fa31
-rw-r--r--fuzz/corpus/fuzz_community_id/f8695f500111093908125cd6fdb13fed4eb33c6a1
-rw-r--r--fuzz/corpus/fuzz_config/1249190e598bc25b8a9837818b3e1a4058ec41d3bin655 -> 0 bytes
-rw-r--r--fuzz/corpus/fuzz_config/18f477174966a8c7da55285963d41aed0dc4662dbin0 -> 620 bytes
-rw-r--r--fuzz/corpus/fuzz_config/1b27923041cd9943fec04f9e795252294a140884bin0 -> 615 bytes
-rw-r--r--fuzz/corpus/fuzz_config/29047258f7805691132b963a65cf521562335f5ebin722 -> 0 bytes
-rw-r--r--fuzz/corpus/fuzz_config/429006ad0dd8e61198ea14fc50788cd9e48847b6bin655 -> 0 bytes
-rw-r--r--fuzz/corpus/fuzz_config/4ba4d00c35a04e38b068a302460e295c1d2486a7bin0 -> 623 bytes
-rw-r--r--fuzz/corpus/fuzz_config/4cee68be22b7d0d401aa891c1d713a0d81ec2e2e (renamed from fuzz/corpus/fuzz_config/a8a8d22febf3f4abe19bf2d27e584ba13d61feb5)bin1003 -> 1003 bytes
-rw-r--r--fuzz/corpus/fuzz_config/52837c2c4c6aa24222b75cd51517847722172adbbin607 -> 0 bytes
-rw-r--r--fuzz/corpus/fuzz_config/579120e2b849fa886d3e00e85da1aadaf012a530 (renamed from fuzz/corpus/fuzz_config/c250a3cf6bf0cf8e0af836532e7b79ea917c10e4)bin770 -> 620 bytes
-rw-r--r--fuzz/corpus/fuzz_config/5d526bda3b5330598d39b61062e9f9d266f80841bin0 -> 609 bytes
-rw-r--r--fuzz/corpus/fuzz_config/5e008f72d654de9bac626249dd3b621e3c40f6c2bin0 -> 619 bytes
-rw-r--r--fuzz/corpus/fuzz_config/68f8e31473a59710033f435affdcd2f85879fce7bin0 -> 625 bytes
-rw-r--r--fuzz/corpus/fuzz_config/9220903d0d0062dfc7e070c8fdc32feb954feb25 (renamed from fuzz/corpus/fuzz_config/33106851bd86bc811f47f10de9c71c2caddc61e2)bin626 -> 621 bytes
-rw-r--r--fuzz/corpus/fuzz_config/9e052a7a1d1f93f288978e7e313c4f324043b761bin730 -> 0 bytes
-rw-r--r--fuzz/corpus/fuzz_config/c4e100d34b144a24af0c38f88db0dccba57381a2bin0 -> 634 bytes
-rw-r--r--fuzz/corpus/fuzz_config/ccd00f1345fccd5b8435039f30fc6f27639029db (renamed from fuzz/corpus/fuzz_config/8dfa9cd6f01cb29ccf987a4a33ecac5ff9125c82)bin848 -> 741 bytes
-rw-r--r--fuzz/corpus/fuzz_config/d4137e2962c892542ba841967f12bdca05eeed87bin771 -> 0 bytes
-rw-r--r--fuzz/corpus/fuzz_config/d53736074744a1979226d90efbb79924941c06e0bin607 -> 0 bytes
-rw-r--r--fuzz/corpus/fuzz_config/d874a185c26c951bf84d9a7d69e00ffb56b0e563bin0 -> 710 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/042f4f0cc3101588368dba98dbf9e83e5422dbb5bin0 -> 2151 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/1195eeb4e77fc5d9e98923031e5f2514b2c7f11ebin0 -> 2066 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/193fb5a96d5140d3b2b7e0ed6515dfd874db55c0bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/2d24f27e806d3cd6247645c98c00088b0560df11bin0 -> 2050 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/2e07c4757014206f6f6e88a2ba355c4fba605e2bbin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/30636fd8ee97c7e63447fcd8eb87673db8bffdd7bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/35f711e75ad500d3c3b2bee6bf6002d7fe904504bin0 -> 2049 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/430602cc8cbe862d7e0ea35b0c5bbd8f6aa04c25bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/437dbd946ccefac6241585389edfcea153befb47bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/439afc909f7db6fbd9cbab21287f5787b5b74df0bin0 -> 2055 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/4759489e6df5f544ccf8d11db20f86492da28f95bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/47f4f68c6df06e75b0cb95b7eaad6442867c2b5fbin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/58fa06dad3fc0bfe2c003be9d4aeb20f0c98e094bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/5dab7c5cf45eb3009d4598c699d7e63759d1c044bin0 -> 2051 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/64f77a7541af6918e635060e1c9f35aa445be232bin0 -> 2063 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/6ac48f313a6df6a4bf2c60e11e388efb131d5019bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/6d6fe95d7988b044fdeabaa1a4f7bf37def86f84bin0 -> 2058 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/6dcc541470d09c89570f026647d821c00709cd7abin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/6e1429b50784bd15641f7c44797a6168fe7e2da8bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/7001cc4fe58f171dc569d2d7ba13f5ec80c49aa5bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/7a856ff04e08b949f0ada3765dc766cb3e88ca9ebin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/7d2f1ef5f3a0ec3e17a54f944f1747d1c4ed6f56bin0 -> 2058 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/8400bb7d51ebbc8951bb5eba1c4632b22adb27e0bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/8778f2315cb83c07caf86e15613364cea9b7a7debin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/89d9a61ce34553dcc76128aceadf3868cc568523bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/8af1119b2f19d2689a0f9291ad2f7530b657661ebin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/8bb7c60c5df4ed28e3344e00abd5533e94aabb44bin0 -> 2049 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/959da56c4aa24b9de1967eeb704c338757bc8375bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/9919fa67f71d64fe656b86a01785b69ad6a279c3bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/9d685ce7ee10169821ece3ab80a402e4ca26bcbfbin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/a68afdc36485e3328cf3d734763ac7e31d8ce271bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/a89e2c5c0a09a9e9f0372b17b383a1afb88dea5abin0 -> 2180 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/a8cfc4b6af41a3c9fb1d642ef1d8c2a9794a77bfbin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/a9719df1432452970b16eb319b5b328fc42a2266bin0 -> 2062 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/aac9f1b7d6ae3cb90e2760fb76166b09fcfbce4bbin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/ada1bdfc9721615f5fc3812cc4ea92c176393037bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/b037d479aafa2eedf46a8a0aefa9e4cdd01c1853bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/b1b941f3c1a9f7635599665ad5a517d0cefc1fa5bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/b5385caa5fbd90b326ecf22c51a7b1db4affeaf7bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/bb5055bb0dc17c1a174c4aac3a4af0a5f50453aebin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/c15a1ae161422b9fdce9672604d63e78b5a94e9dbin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/c2c299509a4e90b969f896f23e6cb08dd74ecbeebin0 -> 2063 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/c6ba417c891b2ca29739e7149674e8c46f915d67bin0 -> 2068 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/d2f13543462b2edbac303949218e786f569b92dbbin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/db40d7abd8b1ccdf7a68b24c2c2ed35a0401505ebin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/dc371e73487929be909a7531c7d14822dfd22cb3bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/dd50425b220f157dc100fae7f7c68a71bb7250bdbin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/df03b2171ae3e1801e140f22f71db7d5b4b3c55abin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/e0b52af1dcb172594da0afd2f126beb2ab6bdc4abin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/e0c22f5deaea2aabbf8c1e28dd0d40290b415cf3bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/e3722d8da58d0405ca0c97d6355a238bdd990c73bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/e57e36bb120012b860b5c36f618e8013dd5c5897bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/e7a8b34fe6322d56fb4c6091958e5c829bef947ebin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/e959ef29ac238ffbdf20b01f8cdea3160781f35ebin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/ea2d6b2e65bfdb6e5170697309d66543bb15f3f8bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/f7c350a374e15a0aa9b7f0f53ea52f5cc3bb9d1abin0 -> 2050 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_libcache/fca5ed57aa43ca3ed700dd7603af6bd90af4d399bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/01b014b146ea485e9c28e58ec5d0f3810186a81ebin0 -> 1141 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/021f72157ffa4da59637382fd9ee14780ef6986dbin0 -> 1025 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/0348a0c1cd260fc706fde509c9737d02f7808757bin0 -> 1031 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/03fcea60dff1be565e2a9ebccca02296fb24ced0bin0 -> 1058 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/0410c4f13abd2ac0be3d47da076620fbf54e9e06bin0 -> 1028 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/05f2bf1721c39d6be215f3400f45f07d7c16d7c5bin0 -> 1029 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/0696e1fef974d3020398c0645c7f5dd946898729bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/08c3863b148d3c71fcb4c04357b4f907f78ba3b0bin0 -> 1025 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/09decc3fe52ee920308448b775e51270d0799634bin0 -> 1026 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/0b19e4d2c5e4a46e34059098f069acf7f76cfceabin0 -> 1025 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/198ae6bac21ab5be28e5fc511779419494c9fb99bin0 -> 1025 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/1ce15b6859d8d0d4b5254dcbb4981252c510fa9fbin0 -> 1036 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/20c7e487a03376e9aee47466a79aa92ee242160cbin0 -> 1026 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/241b26ca01fa5bbb08b23913607309f5063017bdbin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/24cf5c21b413b0e45721eb80edc898cf6e5f95ddbin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/27bb822705fabbf14078bef7ed2d0433d82fdad1bin0 -> 1027 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/29ffc26a0ce83f654710b5de2a597507fc5729dcbin0 -> 1025 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/2a0a2417d7a84b25f766e86673e47ec54fb00cbebin0 -> 1025 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/2cafac567b408f64684f253a5b7b9a4b2e59568bbin0 -> 1068 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/33211be3cf6ed2000eb1d2c75adcc855ed33b8e4bin0 -> 1035 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/3a74d9d9143e2f5df4ae9c51d4ee3e6cce73d4cfbin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/3caf90a302b81895258b6a355d4a91a6c07cb332bin0 -> 1029 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/445082741fc8b6b486a198c23d86b885e6d14ce7bin0 -> 1025 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/4978959b1a5996c384acf6a9bd14245625b66d46bin0 -> 1026 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/4b5604ce8974b23a19948af1185f682c1e1ae8c1bin0 -> 1159 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/51b2a0ef859f67c0dca37efea91b2a2e4ddc520cbin0 -> 1027 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/546c3bd16ec1d25eac5f1807b95bf57632a0542fbin0 -> 1224 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/583d48c2482fd1679a98c1748b31d07a87f06b55bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/591bd120f211dcffd75a4ac0529b847ed9945f57bin0 -> 1036 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/5ee209f4deac4b64ede9a037ad33d271421a5146bin0 -> 1054 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/6b2c2e41b2ca90992d615a3a7c580c5332610bfcbin0 -> 1027 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/75232df37bc7fd2864305542cfed6d5d050394b1bin0 -> 1092 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/753305c57fbdd9c0eaf41e6abd9f74036eab4b60bin0 -> 1026 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/78cc5b473811aa993c3b7c88ffbed05187b6cd99bin0 -> 1076 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/7ac6b622dbe77fef5aa9f34f7170ed199ed1fd73bin0 -> 1026 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/7b71687d14b357cc790e7855d92829c73f1caae5bin0 -> 1032 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/7cdbbf403d12e497d96caa65d454d422167053d1bin0 -> 1025 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/82f4a4e8d17333226fe80f2bce8ef37d33d8a8f0bin0 -> 1025 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/8586c1e00b83a070b54db1672d29c6890f23174dbin0 -> 1029 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/8a555e581a4ed7164e311b75291d73a6a6aa25cebin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/8b16f2f2917796d5becb502f540dbc1a77645614bin0 -> 1067 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/904a157a101a0771744b115e726f45fde3eda4b8bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/90cf625aeb7846a5e9d860a9e920afb3e8657899bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/95402f0bd80b42926a317c1606747289428eeb96bin0 -> 1043 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/96793225335720b78dd4de48be03aabe8487d533bin0 -> 1025 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/985be9edded73c57832ed96828f93fbcf4b7bdbcbin0 -> 1033 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/9949825ec99cd8993cb6d3cf61b78f1daca002d9bin0 -> 1223 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/9b01aca36cc45c533cc9b8a505af7a1696d622ecbin0 -> 1084 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/a17482d70812b76794e2a68373fe1aacb70bb983bin0 -> 1064 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/a1c03aa549f9e6aef57b8f5503ec4b4c1329c7babin0 -> 1058 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/a80d8aae221736aa612f8a82b202f5fce0eb9500bin0 -> 1031 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/aa5f590b2f8ae90f488320a5c0ce1664b6250141bin0 -> 1041 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/aaf511006fc46ca08449d6f4988822988369725cbin0 -> 1262 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/ae84c8f1709ff8fcefae24ebc14ffbfeebca84a8bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/b422ce7e471537303b914cf709aeeb5997183e13bin0 -> 1040 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/ba04de28b49c623e55bfd4782f2e02bdfe98f0eebin0 -> 1058 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/bae61b9f18afd63d2b282bf4319679d5275370dcbin0 -> 1032 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/c5613508b05a5ce7495f6b7b5c1080715c9f94e1bin0 -> 1025 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/c75804765207820234ad3053f61007ab0e4445b4bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/d05019c14442561387c50ba71c173140c1e0770fbin0 -> 1027 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/d5b7e460b128cc07b7dbe2f845e8692370f9e2efbin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/e67f707ba8191170abba4703bb4f4192a0958939bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/ea4d4c2a8e91bd84473dac1e586d68d5c5451f5ebin0 -> 1027 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/eb386659c5a7aef8b95a191b90684d608d664a36bin0 -> 1114 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/f0ba5409fa8e20e3220a2d12c9d9fe39cd2818d9bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/f18edcec12f7c8b5e1de7a43f3cb818677164e49bin0 -> 1030 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/f3259e536d2e75e24770e3afabf98a70a2e08932bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/f4318383dfd035c660f6454b98e0ee85846e6f9dbin0 -> 1027 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/f45ab2dcdc5e5b00f36ba223500dde998ae877f2bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_tree/fc82def89dce7a25407e29cb6553747e9dbefcb5bin0 -> 1024 bytes
-rw-r--r--fuzz/dictionary.dict66
-rw-r--r--fuzz/fuzz_alg_hw_rsi_outliers_da.cpp2
-rw-r--r--fuzz/fuzz_alg_ses_des.cpp2
-rw-r--r--fuzz/fuzz_common_code.c17
-rw-r--r--fuzz/fuzz_common_code.h3
-rw-r--r--fuzz/fuzz_community_id.cpp58
-rw-r--r--fuzz/fuzz_config.cpp16
-rw-r--r--fuzz/fuzz_ds_ahocorasick.cpp3
-rw-r--r--fuzz/fuzz_ds_libcache.cpp68
-rw-r--r--fuzz/fuzz_ds_patricia.cpp4
-rw-r--r--fuzz/fuzz_ds_tree.cpp95
-rw-r--r--fuzz/fuzz_process_packet.c2
-rw-r--r--fuzz/fuzz_quic_get_crypto_data.c2
177 files changed, 408 insertions, 26 deletions
diff --git a/fuzz/Makefile.am b/fuzz/Makefile.am
index 062cddb4c..c16d083a6 100644
--- a/fuzz/Makefile.am
+++ b/fuzz/Makefile.am
@@ -1,8 +1,8 @@
-bin_PROGRAMS = fuzz_process_packet fuzz_ndpi_reader fuzz_ndpi_reader_alloc_fail fuzz_quic_get_crypto_data fuzz_config
+bin_PROGRAMS = fuzz_process_packet fuzz_ndpi_reader fuzz_ndpi_reader_alloc_fail fuzz_quic_get_crypto_data fuzz_config fuzz_community_id
#Alghoritms
bin_PROGRAMS += fuzz_alg_bins fuzz_alg_hll fuzz_alg_hw_rsi_outliers_da fuzz_alg_jitter fuzz_alg_ses_des
#Data structures
-bin_PROGRAMS += fuzz_ds_patricia fuzz_ds_ahocorasick
+bin_PROGRAMS += fuzz_ds_patricia fuzz_ds_ahocorasick fuzz_ds_libcache fuzz_ds_tree
fuzz_process_packet_SOURCES = fuzz_process_packet.c fuzz_common_code.c
fuzz_process_packet_CFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS)
@@ -71,6 +71,21 @@ fuzz_config_LINK=$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CXX) @NDPI_CFLAGS@ $(AM_CXXFLAGS) $(CXXFLAGS) \
$(fuzz_config_LDFLAGS) @NDPI_LDFLAGS@ $(LDFLAGS) -o $@
+fuzz_community_id_SOURCES = fuzz_community_id.cpp fuzz_common_code.c
+fuzz_community_id_CXXFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS) -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
+fuzz_community_id_CFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS) -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
+fuzz_community_id_LDADD = ../src/lib/libndpi.a $(ADDITIONAL_LIBS)
+fuzz_community_id_LDFLAGS = $(LIBS)
+if HAS_FUZZLDFLAGS
+fuzz_community_id_CXXFLAGS += $(LIB_FUZZING_ENGINE)
+fuzz_community_id_CFLAGS += $(LIB_FUZZING_ENGINE)
+fuzz_community_id_LDFLAGS += $(LIB_FUZZING_ENGINE)
+endif
+# force usage of CXX for linker
+fuzz_community_id_LINK=$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXX) @NDPI_CFLAGS@ $(AM_CXXFLAGS) $(CXXFLAGS) \
+ $(fuzz_community_id_LDFLAGS) @NDPI_LDFLAGS@ $(LDFLAGS) -o $@
+
fuzz_alg_bins_SOURCES = fuzz_alg_bins.cpp fuzz_common_code.c
fuzz_alg_bins_CXXFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS) -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
fuzz_alg_bins_CFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS) -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
@@ -176,6 +191,36 @@ fuzz_ds_ahocorasick_LINK=$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CXX) @NDPI_CFLAGS@ $(AM_CXXFLAGS) $(CXXFLAGS) \
$(fuzz_ds_ahocorasick_LDFLAGS) @NDPI_LDFLAGS@ $(LDFLAGS) -o $@
+fuzz_ds_libcache_SOURCES = fuzz_ds_libcache.cpp fuzz_common_code.c
+fuzz_ds_libcache_CXXFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS) -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
+fuzz_ds_libcache_CFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS) -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
+fuzz_ds_libcache_LDADD = ../src/lib/libndpi.a $(ADDITIONAL_LIBS)
+fuzz_ds_libcache_LDFLAGS = $(LIBS)
+if HAS_FUZZLDFLAGS
+fuzz_ds_libcache_CXXFLAGS += $(LIB_FUZZING_ENGINE)
+fuzz_ds_libcache_CFLAGS += $(LIB_FUZZING_ENGINE)
+fuzz_ds_libcache_LDFLAGS += $(LIB_FUZZING_ENGINE)
+endif
+# force usage of CXX for linker
+fuzz_ds_libcache_LINK=$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXX) @NDPI_CFLAGS@ $(AM_CXXFLAGS) $(CXXFLAGS) \
+ $(fuzz_ds_libcache_LDFLAGS) @NDPI_LDFLAGS@ $(LDFLAGS) -o $@
+
+fuzz_ds_tree_SOURCES = fuzz_ds_tree.cpp fuzz_common_code.c
+fuzz_ds_tree_CXXFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS) -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
+fuzz_ds_tree_CFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS) -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
+fuzz_ds_tree_LDADD = ../src/lib/libndpi.a $(ADDITIONAL_LIBS)
+fuzz_ds_tree_LDFLAGS = $(LIBS)
+if HAS_FUZZLDFLAGS
+fuzz_ds_tree_CXXFLAGS += $(LIB_FUZZING_ENGINE)
+fuzz_ds_tree_CFLAGS += $(LIB_FUZZING_ENGINE)
+fuzz_ds_tree_LDFLAGS += $(LIB_FUZZING_ENGINE)
+endif
+# force usage of CXX for linker
+fuzz_ds_tree_LINK=$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXX) @NDPI_CFLAGS@ $(AM_CXXFLAGS) $(CXXFLAGS) \
+ $(fuzz_ds_tree_LDFLAGS) @NDPI_LDFLAGS@ $(LDFLAGS) -o $@
+
# required for Google oss-fuzz
# see https://github.com/google/oss-fuzz/tree/master/projects/ndpi
@@ -197,6 +242,11 @@ files_corpus_fuzz_config := $(wildcard corpus/fuzz_config/*)
fuzz_config_seed_corpus.zip: $(files_corpus_fuzz_config)
zip -j fuzz_config_seed_corpus.zip $(files_corpus_fuzz_config)
+files_corpus_fuzz_community_id := $(wildcard corpus/fuzz_community_id/*)
+
+fuzz_community_id_seed_corpus.zip: $(files_corpus_fuzz_community_id)
+ zip -j fuzz_community_id_seed_corpus.zip $(files_corpus_fuzz_community_id)
+
files_corpus_fuzz_ds_patricia := $(wildcard corpus/fuzz_ds_patricia/*)
fuzz_ds_patricia_seed_corpus.zip: $(files_corpus_fuzz_ds_patricia)
@@ -232,7 +282,25 @@ files_corpus_fuzz_alg_jitter := $(wildcard corpus/fuzz_alg_jitter/*)
fuzz_alg_jitter_seed_corpus.zip: $(files_corpus_fuzz_alg_jitter)
zip -j fuzz_alg_jitter_seed_corpus.zip $(files_corpus_fuzz_alg_jitter)
-corpus: fuzz_ndpi_reader_seed_corpus.zip fuzz_ndpi_reader_alloc_fail_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
+files_corpus_fuzz_ds_libcache := $(wildcard corpus/fuzz_ds_libcache/*)
+
+fuzz_ds_libcache_seed_corpus.zip: $(files_corpus_fuzz_ds_libcache)
+ zip -j fuzz_ds_libcache_seed_corpus.zip $(files_corpus_fuzz_ds_libcache)
+
+files_corpus_fuzz_ds_tree := $(wildcard corpus/fuzz_ds_tree/*)
+
+fuzz_ds_tree_seed_corpus.zip: $(files_corpus_fuzz_ds_tree)
+ zip -j fuzz_ds_tree_seed_corpus.zip $(files_corpus_fuzz_ds_tree)
+
+corpus: fuzz_ndpi_reader_seed_corpus.zip fuzz_ndpi_reader_alloc_fail_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
+
+#Create dictionaries exactly as expected by oss-fuzz.
+#This way, if we need to change/update/add something,
+#we don't need to update scripts in oss-fuzz repository
+dictionaries:
+ cp dictionary.dict fuzz_ndpi_reader.dict
+ cp dictionary.dict fuzz_ndpi_reader_alloc_fail.dict
+ cp dictionary.dict fuzz_process_packet.dict
distdir:
find . -type d | xargs -I'{}' mkdir -p '$(distdir)/{}'
@@ -240,14 +308,18 @@ distdir:
-o -name '*.am' \
-o -name '*.h' \
-o -name '*.cpp' \
+ -o -name '*.dict' \
-o -path './corpus/fuzz_quic_get_crypto_data/*' \
-o -path './corpus/fuzz_config/*' \
+ -o -path './corpus/fuzz_community_id/*' \
-o -path './corpus/fuzz_alg_ses_des/*' \
-o -path './corpus/fuzz_alg_bins/*' \
-o -path './corpus/fuzz_alg_hll/*' \
-o -path './corpus/fuzz_alg_jitter/*' \
-o -path './corpus/fuzz_alg_hw_rsi_outliers_da/*' \
-o -path './corpus/fuzz_ds_ahocorasick/*' \
+ -o -path './corpus/fuzz_ds_libcache/*' \
+ -o -path './corpus/fuzz_ds_tree/*' \
-o -path './corpus/fuzz_ds_patricia/*' | xargs -I'{}' cp -r '{}' '$(distdir)/{}'
-all: corpus
+all: corpus dictionaries
diff --git a/fuzz/corpus/fuzz_community_id/1c058ffec9481e8cdfda408b9fa7085e12993f63 b/fuzz/corpus/fuzz_community_id/1c058ffec9481e8cdfda408b9fa7085e12993f63
new file mode 100644
index 000000000..ab20ba6e9
--- /dev/null
+++ b/fuzz/corpus/fuzz_community_id/1c058ffec9481e8cdfda408b9fa7085e12993f63
@@ -0,0 +1 @@
+šññšš \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_community_id/2a141aaf9ea071fd3b4e3d281c50a6374da29f3e b/fuzz/corpus/fuzz_community_id/2a141aaf9ea071fd3b4e3d281c50a6374da29f3e
new file mode 100644
index 000000000..377d6f0f9
--- /dev/null
+++ b/fuzz/corpus/fuzz_community_id/2a141aaf9ea071fd3b4e3d281c50a6374da29f3e
@@ -0,0 +1 @@
+wwwwwwwš \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_community_id/2aa3f89375e3ecbd22b1170a9066db2dbfca94b5 b/fuzz/corpus/fuzz_community_id/2aa3f89375e3ecbd22b1170a9066db2dbfca94b5
new file mode 100644
index 000000000..406a91228
--- /dev/null
+++ b/fuzz/corpus/fuzz_community_id/2aa3f89375e3ecbd22b1170a9066db2dbfca94b5
@@ -0,0 +1 @@
+š¦ˆˆˆˆˆññšš \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_community_id/3c722a326b6cee579b995354d0275c86f1c8410c b/fuzz/corpus/fuzz_community_id/3c722a326b6cee579b995354d0275c86f1c8410c
new file mode 100644
index 000000000..ea472b385
--- /dev/null
+++ b/fuzz/corpus/fuzz_community_id/3c722a326b6cee579b995354d0275c86f1c8410c
@@ -0,0 +1 @@
+@š \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_community_id/45e29e99716f52af087b34c1f09c253210172e16 b/fuzz/corpus/fuzz_community_id/45e29e99716f52af087b34c1f09c253210172e16
new file mode 100644
index 000000000..fcee7b2a2
--- /dev/null
+++ b/fuzz/corpus/fuzz_community_id/45e29e99716f52af087b34c1f09c253210172e16
@@ -0,0 +1 @@
+šñš \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_community_id/46dead9096cafd6fb8fa4f2c60012f3d041a20bd b/fuzz/corpus/fuzz_community_id/46dead9096cafd6fb8fa4f2c60012f3d041a20bd
new file mode 100644
index 000000000..1975e92d9
--- /dev/null
+++ b/fuzz/corpus/fuzz_community_id/46dead9096cafd6fb8fa4f2c60012f3d041a20bd
@@ -0,0 +1 @@
+š'$š \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_community_id/4a8f2a58a6a4cbfc71faa980308fb7cc5ee1f4f0 b/fuzz/corpus/fuzz_community_id/4a8f2a58a6a4cbfc71faa980308fb7cc5ee1f4f0
new file mode 100644
index 000000000..8b13124d1
--- /dev/null
+++ b/fuzz/corpus/fuzz_community_id/4a8f2a58a6a4cbfc71faa980308fb7cc5ee1f4f0
@@ -0,0 +1 @@
+fbå๹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹ \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_community_id/58e6b3a414a1e090dfc6029add0f3555ccba127f b/fuzz/corpus/fuzz_community_id/58e6b3a414a1e090dfc6029add0f3555ccba127f
new file mode 100644
index 000000000..9cbe6ea56
--- /dev/null
+++ b/fuzz/corpus/fuzz_community_id/58e6b3a414a1e090dfc6029add0f3555ccba127f
@@ -0,0 +1 @@
+e \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_community_id/63ca47311f24473a100f131ad9ae08128b169022 b/fuzz/corpus/fuzz_community_id/63ca47311f24473a100f131ad9ae08128b169022
new file mode 100644
index 000000000..471fd986e
--- /dev/null
+++ b/fuzz/corpus/fuzz_community_id/63ca47311f24473a100f131ad9ae08128b169022
@@ -0,0 +1 @@
+šññ&šš \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_community_id/753c246d759eb3bd906f929b77d86c8915a655f7 b/fuzz/corpus/fuzz_community_id/753c246d759eb3bd906f929b77d86c8915a655f7
new file mode 100644
index 000000000..a85ba65c9
--- /dev/null
+++ b/fuzz/corpus/fuzz_community_id/753c246d759eb3bd906f929b77d86c8915a655f7
@@ -0,0 +1 @@
+w*6666 \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_community_id/82d71306d4eddb7279da80cd7c1be092b642eca8 b/fuzz/corpus/fuzz_community_id/82d71306d4eddb7279da80cd7c1be092b642eca8
new file mode 100644
index 000000000..42017154c
--- /dev/null
+++ b/fuzz/corpus/fuzz_community_id/82d71306d4eddb7279da80cd7c1be092b642eca8
@@ -0,0 +1 @@
+6wwwww‚wš \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_community_id/a478a85347f063f3f854f5d976c0196171270242 b/fuzz/corpus/fuzz_community_id/a478a85347f063f3f854f5d976c0196171270242
new file mode 100644
index 000000000..afd26a70c
--- /dev/null
+++ b/fuzz/corpus/fuzz_community_id/a478a85347f063f3f854f5d976c0196171270242
@@ -0,0 +1 @@
+ÿÿÿÿÿÿQ \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_community_id/acb348360f8e8b083fec3515d39f58e4cabecee7 b/fuzz/corpus/fuzz_community_id/acb348360f8e8b083fec3515d39f58e4cabecee7
new file mode 100644
index 000000000..538f1e344
--- /dev/null
+++ b/fuzz/corpus/fuzz_community_id/acb348360f8e8b083fec3515d39f58e4cabecee7
Binary files differ
diff --git a/fuzz/corpus/fuzz_community_id/bb8face00f6b5c75a869f51b660c0f4995b36231 b/fuzz/corpus/fuzz_community_id/bb8face00f6b5c75a869f51b660c0f4995b36231
new file mode 100644
index 000000000..07e3211b0
--- /dev/null
+++ b/fuzz/corpus/fuzz_community_id/bb8face00f6b5c75a869f51b660c0f4995b36231
@@ -0,0 +1 @@
+ž'$š¦ˆˆšˆˆxbb \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_community_id/c88c17fdae9667e8785ea750a50a5d7f3ca5b465 b/fuzz/corpus/fuzz_community_id/c88c17fdae9667e8785ea750a50a5d7f3ca5b465
new file mode 100644
index 000000000..64d4d01c7
--- /dev/null
+++ b/fuzz/corpus/fuzz_community_id/c88c17fdae9667e8785ea750a50a5d7f3ca5b465
@@ -0,0 +1 @@
+š \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_community_id/ca4497abb2cc0324de9f909323ceffcb76f38fa3 b/fuzz/corpus/fuzz_community_id/ca4497abb2cc0324de9f909323ceffcb76f38fa3
new file mode 100644
index 000000000..adfae8dc1
--- /dev/null
+++ b/fuzz/corpus/fuzz_community_id/ca4497abb2cc0324de9f909323ceffcb76f38fa3
@@ -0,0 +1 @@
+š \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_community_id/f8695f500111093908125cd6fdb13fed4eb33c6a b/fuzz/corpus/fuzz_community_id/f8695f500111093908125cd6fdb13fed4eb33c6a
new file mode 100644
index 000000000..ed59e749d
--- /dev/null
+++ b/fuzz/corpus/fuzz_community_id/f8695f500111093908125cd6fdb13fed4eb33c6a
@@ -0,0 +1 @@
+ÿÿÿÿÿÿÿÿÿÿš \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_config/1249190e598bc25b8a9837818b3e1a4058ec41d3 b/fuzz/corpus/fuzz_config/1249190e598bc25b8a9837818b3e1a4058ec41d3
deleted file mode 100644
index e4dceba51..000000000
--- a/fuzz/corpus/fuzz_config/1249190e598bc25b8a9837818b3e1a4058ec41d3
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/fuzz_config/18f477174966a8c7da55285963d41aed0dc4662d b/fuzz/corpus/fuzz_config/18f477174966a8c7da55285963d41aed0dc4662d
new file mode 100644
index 000000000..2b9a4184b
--- /dev/null
+++ b/fuzz/corpus/fuzz_config/18f477174966a8c7da55285963d41aed0dc4662d
Binary files differ
diff --git a/fuzz/corpus/fuzz_config/1b27923041cd9943fec04f9e795252294a140884 b/fuzz/corpus/fuzz_config/1b27923041cd9943fec04f9e795252294a140884
new file mode 100644
index 000000000..75427c8d2
--- /dev/null
+++ b/fuzz/corpus/fuzz_config/1b27923041cd9943fec04f9e795252294a140884
Binary files differ
diff --git a/fuzz/corpus/fuzz_config/29047258f7805691132b963a65cf521562335f5e b/fuzz/corpus/fuzz_config/29047258f7805691132b963a65cf521562335f5e
deleted file mode 100644
index afc219a99..000000000
--- a/fuzz/corpus/fuzz_config/29047258f7805691132b963a65cf521562335f5e
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/fuzz_config/429006ad0dd8e61198ea14fc50788cd9e48847b6 b/fuzz/corpus/fuzz_config/429006ad0dd8e61198ea14fc50788cd9e48847b6
deleted file mode 100644
index caa9d052d..000000000
--- a/fuzz/corpus/fuzz_config/429006ad0dd8e61198ea14fc50788cd9e48847b6
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/fuzz_config/4ba4d00c35a04e38b068a302460e295c1d2486a7 b/fuzz/corpus/fuzz_config/4ba4d00c35a04e38b068a302460e295c1d2486a7
new file mode 100644
index 000000000..3d70ae0a2
--- /dev/null
+++ b/fuzz/corpus/fuzz_config/4ba4d00c35a04e38b068a302460e295c1d2486a7
Binary files differ
diff --git a/fuzz/corpus/fuzz_config/a8a8d22febf3f4abe19bf2d27e584ba13d61feb5 b/fuzz/corpus/fuzz_config/4cee68be22b7d0d401aa891c1d713a0d81ec2e2e
index 8b4dff1fc..16bb6a156 100644
--- a/fuzz/corpus/fuzz_config/a8a8d22febf3f4abe19bf2d27e584ba13d61feb5
+++ b/fuzz/corpus/fuzz_config/4cee68be22b7d0d401aa891c1d713a0d81ec2e2e
Binary files differ
diff --git a/fuzz/corpus/fuzz_config/52837c2c4c6aa24222b75cd51517847722172adb b/fuzz/corpus/fuzz_config/52837c2c4c6aa24222b75cd51517847722172adb
deleted file mode 100644
index 80a514701..000000000
--- a/fuzz/corpus/fuzz_config/52837c2c4c6aa24222b75cd51517847722172adb
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/fuzz_config/c250a3cf6bf0cf8e0af836532e7b79ea917c10e4 b/fuzz/corpus/fuzz_config/579120e2b849fa886d3e00e85da1aadaf012a530
index 8a9df65b2..ad41b8e05 100644
--- a/fuzz/corpus/fuzz_config/c250a3cf6bf0cf8e0af836532e7b79ea917c10e4
+++ b/fuzz/corpus/fuzz_config/579120e2b849fa886d3e00e85da1aadaf012a530
Binary files differ
diff --git a/fuzz/corpus/fuzz_config/5d526bda3b5330598d39b61062e9f9d266f80841 b/fuzz/corpus/fuzz_config/5d526bda3b5330598d39b61062e9f9d266f80841
new file mode 100644
index 000000000..a2b211283
--- /dev/null
+++ b/fuzz/corpus/fuzz_config/5d526bda3b5330598d39b61062e9f9d266f80841
Binary files differ
diff --git a/fuzz/corpus/fuzz_config/5e008f72d654de9bac626249dd3b621e3c40f6c2 b/fuzz/corpus/fuzz_config/5e008f72d654de9bac626249dd3b621e3c40f6c2
new file mode 100644
index 000000000..256a9bbeb
--- /dev/null
+++ b/fuzz/corpus/fuzz_config/5e008f72d654de9bac626249dd3b621e3c40f6c2
Binary files differ
diff --git a/fuzz/corpus/fuzz_config/68f8e31473a59710033f435affdcd2f85879fce7 b/fuzz/corpus/fuzz_config/68f8e31473a59710033f435affdcd2f85879fce7
new file mode 100644
index 000000000..5efc68e92
--- /dev/null
+++ b/fuzz/corpus/fuzz_config/68f8e31473a59710033f435affdcd2f85879fce7
Binary files differ
diff --git a/fuzz/corpus/fuzz_config/33106851bd86bc811f47f10de9c71c2caddc61e2 b/fuzz/corpus/fuzz_config/9220903d0d0062dfc7e070c8fdc32feb954feb25
index ab6abf41d..8babbfb9c 100644
--- a/fuzz/corpus/fuzz_config/33106851bd86bc811f47f10de9c71c2caddc61e2
+++ b/fuzz/corpus/fuzz_config/9220903d0d0062dfc7e070c8fdc32feb954feb25
Binary files differ
diff --git a/fuzz/corpus/fuzz_config/9e052a7a1d1f93f288978e7e313c4f324043b761 b/fuzz/corpus/fuzz_config/9e052a7a1d1f93f288978e7e313c4f324043b761
deleted file mode 100644
index 1491c64d4..000000000
--- a/fuzz/corpus/fuzz_config/9e052a7a1d1f93f288978e7e313c4f324043b761
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/fuzz_config/c4e100d34b144a24af0c38f88db0dccba57381a2 b/fuzz/corpus/fuzz_config/c4e100d34b144a24af0c38f88db0dccba57381a2
new file mode 100644
index 000000000..43717d5f5
--- /dev/null
+++ b/fuzz/corpus/fuzz_config/c4e100d34b144a24af0c38f88db0dccba57381a2
Binary files differ
diff --git a/fuzz/corpus/fuzz_config/8dfa9cd6f01cb29ccf987a4a33ecac5ff9125c82 b/fuzz/corpus/fuzz_config/ccd00f1345fccd5b8435039f30fc6f27639029db
index 061542d3c..81d59ad0c 100644
--- a/fuzz/corpus/fuzz_config/8dfa9cd6f01cb29ccf987a4a33ecac5ff9125c82
+++ b/fuzz/corpus/fuzz_config/ccd00f1345fccd5b8435039f30fc6f27639029db
Binary files differ
diff --git a/fuzz/corpus/fuzz_config/d4137e2962c892542ba841967f12bdca05eeed87 b/fuzz/corpus/fuzz_config/d4137e2962c892542ba841967f12bdca05eeed87
deleted file mode 100644
index 668337a67..000000000
--- a/fuzz/corpus/fuzz_config/d4137e2962c892542ba841967f12bdca05eeed87
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/fuzz_config/d53736074744a1979226d90efbb79924941c06e0 b/fuzz/corpus/fuzz_config/d53736074744a1979226d90efbb79924941c06e0
deleted file mode 100644
index 2129831b7..000000000
--- a/fuzz/corpus/fuzz_config/d53736074744a1979226d90efbb79924941c06e0
+++ /dev/null
Binary files differ
diff --git a/fuzz/corpus/fuzz_config/d874a185c26c951bf84d9a7d69e00ffb56b0e563 b/fuzz/corpus/fuzz_config/d874a185c26c951bf84d9a7d69e00ffb56b0e563
new file mode 100644
index 000000000..7b92ee675
--- /dev/null
+++ b/fuzz/corpus/fuzz_config/d874a185c26c951bf84d9a7d69e00ffb56b0e563
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/042f4f0cc3101588368dba98dbf9e83e5422dbb5 b/fuzz/corpus/fuzz_ds_libcache/042f4f0cc3101588368dba98dbf9e83e5422dbb5
new file mode 100644
index 000000000..30edd9ece
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/042f4f0cc3101588368dba98dbf9e83e5422dbb5
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/1195eeb4e77fc5d9e98923031e5f2514b2c7f11e b/fuzz/corpus/fuzz_ds_libcache/1195eeb4e77fc5d9e98923031e5f2514b2c7f11e
new file mode 100644
index 000000000..594b2a8dc
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/1195eeb4e77fc5d9e98923031e5f2514b2c7f11e
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/193fb5a96d5140d3b2b7e0ed6515dfd874db55c0 b/fuzz/corpus/fuzz_ds_libcache/193fb5a96d5140d3b2b7e0ed6515dfd874db55c0
new file mode 100644
index 000000000..d23792dbb
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/193fb5a96d5140d3b2b7e0ed6515dfd874db55c0
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/2d24f27e806d3cd6247645c98c00088b0560df11 b/fuzz/corpus/fuzz_ds_libcache/2d24f27e806d3cd6247645c98c00088b0560df11
new file mode 100644
index 000000000..ad647fec4
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/2d24f27e806d3cd6247645c98c00088b0560df11
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/2e07c4757014206f6f6e88a2ba355c4fba605e2b b/fuzz/corpus/fuzz_ds_libcache/2e07c4757014206f6f6e88a2ba355c4fba605e2b
new file mode 100644
index 000000000..8c410290b
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/2e07c4757014206f6f6e88a2ba355c4fba605e2b
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/30636fd8ee97c7e63447fcd8eb87673db8bffdd7 b/fuzz/corpus/fuzz_ds_libcache/30636fd8ee97c7e63447fcd8eb87673db8bffdd7
new file mode 100644
index 000000000..b103d6ab4
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/30636fd8ee97c7e63447fcd8eb87673db8bffdd7
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/35f711e75ad500d3c3b2bee6bf6002d7fe904504 b/fuzz/corpus/fuzz_ds_libcache/35f711e75ad500d3c3b2bee6bf6002d7fe904504
new file mode 100644
index 000000000..58b90fc85
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/35f711e75ad500d3c3b2bee6bf6002d7fe904504
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/430602cc8cbe862d7e0ea35b0c5bbd8f6aa04c25 b/fuzz/corpus/fuzz_ds_libcache/430602cc8cbe862d7e0ea35b0c5bbd8f6aa04c25
new file mode 100644
index 000000000..b23840072
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/430602cc8cbe862d7e0ea35b0c5bbd8f6aa04c25
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/437dbd946ccefac6241585389edfcea153befb47 b/fuzz/corpus/fuzz_ds_libcache/437dbd946ccefac6241585389edfcea153befb47
new file mode 100644
index 000000000..908066a77
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/437dbd946ccefac6241585389edfcea153befb47
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/439afc909f7db6fbd9cbab21287f5787b5b74df0 b/fuzz/corpus/fuzz_ds_libcache/439afc909f7db6fbd9cbab21287f5787b5b74df0
new file mode 100644
index 000000000..e920d92e6
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/439afc909f7db6fbd9cbab21287f5787b5b74df0
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/4759489e6df5f544ccf8d11db20f86492da28f95 b/fuzz/corpus/fuzz_ds_libcache/4759489e6df5f544ccf8d11db20f86492da28f95
new file mode 100644
index 000000000..2d6dcac14
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/4759489e6df5f544ccf8d11db20f86492da28f95
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/47f4f68c6df06e75b0cb95b7eaad6442867c2b5f b/fuzz/corpus/fuzz_ds_libcache/47f4f68c6df06e75b0cb95b7eaad6442867c2b5f
new file mode 100644
index 000000000..5a0e17b7a
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/47f4f68c6df06e75b0cb95b7eaad6442867c2b5f
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/58fa06dad3fc0bfe2c003be9d4aeb20f0c98e094 b/fuzz/corpus/fuzz_ds_libcache/58fa06dad3fc0bfe2c003be9d4aeb20f0c98e094
new file mode 100644
index 000000000..efc0fa2c5
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/58fa06dad3fc0bfe2c003be9d4aeb20f0c98e094
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/5dab7c5cf45eb3009d4598c699d7e63759d1c044 b/fuzz/corpus/fuzz_ds_libcache/5dab7c5cf45eb3009d4598c699d7e63759d1c044
new file mode 100644
index 000000000..89591c330
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/5dab7c5cf45eb3009d4598c699d7e63759d1c044
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/64f77a7541af6918e635060e1c9f35aa445be232 b/fuzz/corpus/fuzz_ds_libcache/64f77a7541af6918e635060e1c9f35aa445be232
new file mode 100644
index 000000000..a7b41ccc7
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/64f77a7541af6918e635060e1c9f35aa445be232
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/6ac48f313a6df6a4bf2c60e11e388efb131d5019 b/fuzz/corpus/fuzz_ds_libcache/6ac48f313a6df6a4bf2c60e11e388efb131d5019
new file mode 100644
index 000000000..d35c3590e
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/6ac48f313a6df6a4bf2c60e11e388efb131d5019
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/6d6fe95d7988b044fdeabaa1a4f7bf37def86f84 b/fuzz/corpus/fuzz_ds_libcache/6d6fe95d7988b044fdeabaa1a4f7bf37def86f84
new file mode 100644
index 000000000..a18b2b5dc
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/6d6fe95d7988b044fdeabaa1a4f7bf37def86f84
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/6dcc541470d09c89570f026647d821c00709cd7a b/fuzz/corpus/fuzz_ds_libcache/6dcc541470d09c89570f026647d821c00709cd7a
new file mode 100644
index 000000000..81a55633f
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/6dcc541470d09c89570f026647d821c00709cd7a
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/6e1429b50784bd15641f7c44797a6168fe7e2da8 b/fuzz/corpus/fuzz_ds_libcache/6e1429b50784bd15641f7c44797a6168fe7e2da8
new file mode 100644
index 000000000..8f75ebd78
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/6e1429b50784bd15641f7c44797a6168fe7e2da8
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/7001cc4fe58f171dc569d2d7ba13f5ec80c49aa5 b/fuzz/corpus/fuzz_ds_libcache/7001cc4fe58f171dc569d2d7ba13f5ec80c49aa5
new file mode 100644
index 000000000..4d2583635
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/7001cc4fe58f171dc569d2d7ba13f5ec80c49aa5
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/7a856ff04e08b949f0ada3765dc766cb3e88ca9e b/fuzz/corpus/fuzz_ds_libcache/7a856ff04e08b949f0ada3765dc766cb3e88ca9e
new file mode 100644
index 000000000..20051650a
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/7a856ff04e08b949f0ada3765dc766cb3e88ca9e
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/7d2f1ef5f3a0ec3e17a54f944f1747d1c4ed6f56 b/fuzz/corpus/fuzz_ds_libcache/7d2f1ef5f3a0ec3e17a54f944f1747d1c4ed6f56
new file mode 100644
index 000000000..2ea5dd37c
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/7d2f1ef5f3a0ec3e17a54f944f1747d1c4ed6f56
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/8400bb7d51ebbc8951bb5eba1c4632b22adb27e0 b/fuzz/corpus/fuzz_ds_libcache/8400bb7d51ebbc8951bb5eba1c4632b22adb27e0
new file mode 100644
index 000000000..9bb5e8613
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/8400bb7d51ebbc8951bb5eba1c4632b22adb27e0
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/8778f2315cb83c07caf86e15613364cea9b7a7de b/fuzz/corpus/fuzz_ds_libcache/8778f2315cb83c07caf86e15613364cea9b7a7de
new file mode 100644
index 000000000..d29b72d62
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/8778f2315cb83c07caf86e15613364cea9b7a7de
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/89d9a61ce34553dcc76128aceadf3868cc568523 b/fuzz/corpus/fuzz_ds_libcache/89d9a61ce34553dcc76128aceadf3868cc568523
new file mode 100644
index 000000000..e544ac808
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/89d9a61ce34553dcc76128aceadf3868cc568523
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/8af1119b2f19d2689a0f9291ad2f7530b657661e b/fuzz/corpus/fuzz_ds_libcache/8af1119b2f19d2689a0f9291ad2f7530b657661e
new file mode 100644
index 000000000..081054586
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/8af1119b2f19d2689a0f9291ad2f7530b657661e
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/8bb7c60c5df4ed28e3344e00abd5533e94aabb44 b/fuzz/corpus/fuzz_ds_libcache/8bb7c60c5df4ed28e3344e00abd5533e94aabb44
new file mode 100644
index 000000000..dd2e624c2
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/8bb7c60c5df4ed28e3344e00abd5533e94aabb44
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/959da56c4aa24b9de1967eeb704c338757bc8375 b/fuzz/corpus/fuzz_ds_libcache/959da56c4aa24b9de1967eeb704c338757bc8375
new file mode 100644
index 000000000..7bba71cfc
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/959da56c4aa24b9de1967eeb704c338757bc8375
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/9919fa67f71d64fe656b86a01785b69ad6a279c3 b/fuzz/corpus/fuzz_ds_libcache/9919fa67f71d64fe656b86a01785b69ad6a279c3
new file mode 100644
index 000000000..d4bdb8676
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/9919fa67f71d64fe656b86a01785b69ad6a279c3
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/9d685ce7ee10169821ece3ab80a402e4ca26bcbf b/fuzz/corpus/fuzz_ds_libcache/9d685ce7ee10169821ece3ab80a402e4ca26bcbf
new file mode 100644
index 000000000..638ae8c6b
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/9d685ce7ee10169821ece3ab80a402e4ca26bcbf
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/a68afdc36485e3328cf3d734763ac7e31d8ce271 b/fuzz/corpus/fuzz_ds_libcache/a68afdc36485e3328cf3d734763ac7e31d8ce271
new file mode 100644
index 000000000..8700c83ef
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/a68afdc36485e3328cf3d734763ac7e31d8ce271
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/a89e2c5c0a09a9e9f0372b17b383a1afb88dea5a b/fuzz/corpus/fuzz_ds_libcache/a89e2c5c0a09a9e9f0372b17b383a1afb88dea5a
new file mode 100644
index 000000000..6e44f250c
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/a89e2c5c0a09a9e9f0372b17b383a1afb88dea5a
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/a8cfc4b6af41a3c9fb1d642ef1d8c2a9794a77bf b/fuzz/corpus/fuzz_ds_libcache/a8cfc4b6af41a3c9fb1d642ef1d8c2a9794a77bf
new file mode 100644
index 000000000..88494ea4f
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/a8cfc4b6af41a3c9fb1d642ef1d8c2a9794a77bf
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/a9719df1432452970b16eb319b5b328fc42a2266 b/fuzz/corpus/fuzz_ds_libcache/a9719df1432452970b16eb319b5b328fc42a2266
new file mode 100644
index 000000000..5bea9bd00
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/a9719df1432452970b16eb319b5b328fc42a2266
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/aac9f1b7d6ae3cb90e2760fb76166b09fcfbce4b b/fuzz/corpus/fuzz_ds_libcache/aac9f1b7d6ae3cb90e2760fb76166b09fcfbce4b
new file mode 100644
index 000000000..b98ed636c
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/aac9f1b7d6ae3cb90e2760fb76166b09fcfbce4b
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/ada1bdfc9721615f5fc3812cc4ea92c176393037 b/fuzz/corpus/fuzz_ds_libcache/ada1bdfc9721615f5fc3812cc4ea92c176393037
new file mode 100644
index 000000000..a981f2ba8
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/ada1bdfc9721615f5fc3812cc4ea92c176393037
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/b037d479aafa2eedf46a8a0aefa9e4cdd01c1853 b/fuzz/corpus/fuzz_ds_libcache/b037d479aafa2eedf46a8a0aefa9e4cdd01c1853
new file mode 100644
index 000000000..220f370e2
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/b037d479aafa2eedf46a8a0aefa9e4cdd01c1853
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/b1b941f3c1a9f7635599665ad5a517d0cefc1fa5 b/fuzz/corpus/fuzz_ds_libcache/b1b941f3c1a9f7635599665ad5a517d0cefc1fa5
new file mode 100644
index 000000000..01defa2a3
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/b1b941f3c1a9f7635599665ad5a517d0cefc1fa5
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/b5385caa5fbd90b326ecf22c51a7b1db4affeaf7 b/fuzz/corpus/fuzz_ds_libcache/b5385caa5fbd90b326ecf22c51a7b1db4affeaf7
new file mode 100644
index 000000000..2f518be4b
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/b5385caa5fbd90b326ecf22c51a7b1db4affeaf7
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/bb5055bb0dc17c1a174c4aac3a4af0a5f50453ae b/fuzz/corpus/fuzz_ds_libcache/bb5055bb0dc17c1a174c4aac3a4af0a5f50453ae
new file mode 100644
index 000000000..a2e6d75a9
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/bb5055bb0dc17c1a174c4aac3a4af0a5f50453ae
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/c15a1ae161422b9fdce9672604d63e78b5a94e9d b/fuzz/corpus/fuzz_ds_libcache/c15a1ae161422b9fdce9672604d63e78b5a94e9d
new file mode 100644
index 000000000..88eee758c
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/c15a1ae161422b9fdce9672604d63e78b5a94e9d
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/c2c299509a4e90b969f896f23e6cb08dd74ecbee b/fuzz/corpus/fuzz_ds_libcache/c2c299509a4e90b969f896f23e6cb08dd74ecbee
new file mode 100644
index 000000000..2db9b2545
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/c2c299509a4e90b969f896f23e6cb08dd74ecbee
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/c6ba417c891b2ca29739e7149674e8c46f915d67 b/fuzz/corpus/fuzz_ds_libcache/c6ba417c891b2ca29739e7149674e8c46f915d67
new file mode 100644
index 000000000..727448004
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/c6ba417c891b2ca29739e7149674e8c46f915d67
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/d2f13543462b2edbac303949218e786f569b92db b/fuzz/corpus/fuzz_ds_libcache/d2f13543462b2edbac303949218e786f569b92db
new file mode 100644
index 000000000..5708960ff
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/d2f13543462b2edbac303949218e786f569b92db
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/db40d7abd8b1ccdf7a68b24c2c2ed35a0401505e b/fuzz/corpus/fuzz_ds_libcache/db40d7abd8b1ccdf7a68b24c2c2ed35a0401505e
new file mode 100644
index 000000000..49ea02036
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/db40d7abd8b1ccdf7a68b24c2c2ed35a0401505e
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/dc371e73487929be909a7531c7d14822dfd22cb3 b/fuzz/corpus/fuzz_ds_libcache/dc371e73487929be909a7531c7d14822dfd22cb3
new file mode 100644
index 000000000..cfa151a46
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/dc371e73487929be909a7531c7d14822dfd22cb3
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/dd50425b220f157dc100fae7f7c68a71bb7250bd b/fuzz/corpus/fuzz_ds_libcache/dd50425b220f157dc100fae7f7c68a71bb7250bd
new file mode 100644
index 000000000..95d429c31
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/dd50425b220f157dc100fae7f7c68a71bb7250bd
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/df03b2171ae3e1801e140f22f71db7d5b4b3c55a b/fuzz/corpus/fuzz_ds_libcache/df03b2171ae3e1801e140f22f71db7d5b4b3c55a
new file mode 100644
index 000000000..2fd82b4c4
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/df03b2171ae3e1801e140f22f71db7d5b4b3c55a
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/e0b52af1dcb172594da0afd2f126beb2ab6bdc4a b/fuzz/corpus/fuzz_ds_libcache/e0b52af1dcb172594da0afd2f126beb2ab6bdc4a
new file mode 100644
index 000000000..e8f944bf0
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/e0b52af1dcb172594da0afd2f126beb2ab6bdc4a
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/e0c22f5deaea2aabbf8c1e28dd0d40290b415cf3 b/fuzz/corpus/fuzz_ds_libcache/e0c22f5deaea2aabbf8c1e28dd0d40290b415cf3
new file mode 100644
index 000000000..37321fc5c
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/e0c22f5deaea2aabbf8c1e28dd0d40290b415cf3
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/e3722d8da58d0405ca0c97d6355a238bdd990c73 b/fuzz/corpus/fuzz_ds_libcache/e3722d8da58d0405ca0c97d6355a238bdd990c73
new file mode 100644
index 000000000..13d82e23e
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/e3722d8da58d0405ca0c97d6355a238bdd990c73
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/e57e36bb120012b860b5c36f618e8013dd5c5897 b/fuzz/corpus/fuzz_ds_libcache/e57e36bb120012b860b5c36f618e8013dd5c5897
new file mode 100644
index 000000000..d39549689
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/e57e36bb120012b860b5c36f618e8013dd5c5897
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/e7a8b34fe6322d56fb4c6091958e5c829bef947e b/fuzz/corpus/fuzz_ds_libcache/e7a8b34fe6322d56fb4c6091958e5c829bef947e
new file mode 100644
index 000000000..41d6434e0
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/e7a8b34fe6322d56fb4c6091958e5c829bef947e
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/e959ef29ac238ffbdf20b01f8cdea3160781f35e b/fuzz/corpus/fuzz_ds_libcache/e959ef29ac238ffbdf20b01f8cdea3160781f35e
new file mode 100644
index 000000000..31aa9f24c
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/e959ef29ac238ffbdf20b01f8cdea3160781f35e
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/ea2d6b2e65bfdb6e5170697309d66543bb15f3f8 b/fuzz/corpus/fuzz_ds_libcache/ea2d6b2e65bfdb6e5170697309d66543bb15f3f8
new file mode 100644
index 000000000..2d6e284db
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/ea2d6b2e65bfdb6e5170697309d66543bb15f3f8
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/f7c350a374e15a0aa9b7f0f53ea52f5cc3bb9d1a b/fuzz/corpus/fuzz_ds_libcache/f7c350a374e15a0aa9b7f0f53ea52f5cc3bb9d1a
new file mode 100644
index 000000000..3726089c9
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/f7c350a374e15a0aa9b7f0f53ea52f5cc3bb9d1a
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_libcache/fca5ed57aa43ca3ed700dd7603af6bd90af4d399 b/fuzz/corpus/fuzz_ds_libcache/fca5ed57aa43ca3ed700dd7603af6bd90af4d399
new file mode 100644
index 000000000..f25414be0
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_libcache/fca5ed57aa43ca3ed700dd7603af6bd90af4d399
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/01b014b146ea485e9c28e58ec5d0f3810186a81e b/fuzz/corpus/fuzz_ds_tree/01b014b146ea485e9c28e58ec5d0f3810186a81e
new file mode 100644
index 000000000..9bb1c1d20
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/01b014b146ea485e9c28e58ec5d0f3810186a81e
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/021f72157ffa4da59637382fd9ee14780ef6986d b/fuzz/corpus/fuzz_ds_tree/021f72157ffa4da59637382fd9ee14780ef6986d
new file mode 100644
index 000000000..f0b8c0704
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/021f72157ffa4da59637382fd9ee14780ef6986d
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/0348a0c1cd260fc706fde509c9737d02f7808757 b/fuzz/corpus/fuzz_ds_tree/0348a0c1cd260fc706fde509c9737d02f7808757
new file mode 100644
index 000000000..712f952c0
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/0348a0c1cd260fc706fde509c9737d02f7808757
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/03fcea60dff1be565e2a9ebccca02296fb24ced0 b/fuzz/corpus/fuzz_ds_tree/03fcea60dff1be565e2a9ebccca02296fb24ced0
new file mode 100644
index 000000000..1f5dbf8b3
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/03fcea60dff1be565e2a9ebccca02296fb24ced0
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/0410c4f13abd2ac0be3d47da076620fbf54e9e06 b/fuzz/corpus/fuzz_ds_tree/0410c4f13abd2ac0be3d47da076620fbf54e9e06
new file mode 100644
index 000000000..808beb78c
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/0410c4f13abd2ac0be3d47da076620fbf54e9e06
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/05f2bf1721c39d6be215f3400f45f07d7c16d7c5 b/fuzz/corpus/fuzz_ds_tree/05f2bf1721c39d6be215f3400f45f07d7c16d7c5
new file mode 100644
index 000000000..5ff45aec8
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/05f2bf1721c39d6be215f3400f45f07d7c16d7c5
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/0696e1fef974d3020398c0645c7f5dd946898729 b/fuzz/corpus/fuzz_ds_tree/0696e1fef974d3020398c0645c7f5dd946898729
new file mode 100644
index 000000000..73ebd2a4d
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/0696e1fef974d3020398c0645c7f5dd946898729
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/08c3863b148d3c71fcb4c04357b4f907f78ba3b0 b/fuzz/corpus/fuzz_ds_tree/08c3863b148d3c71fcb4c04357b4f907f78ba3b0
new file mode 100644
index 000000000..b8ade60af
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/08c3863b148d3c71fcb4c04357b4f907f78ba3b0
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/09decc3fe52ee920308448b775e51270d0799634 b/fuzz/corpus/fuzz_ds_tree/09decc3fe52ee920308448b775e51270d0799634
new file mode 100644
index 000000000..51756ff8e
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/09decc3fe52ee920308448b775e51270d0799634
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/0b19e4d2c5e4a46e34059098f069acf7f76cfcea b/fuzz/corpus/fuzz_ds_tree/0b19e4d2c5e4a46e34059098f069acf7f76cfcea
new file mode 100644
index 000000000..d116787a1
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/0b19e4d2c5e4a46e34059098f069acf7f76cfcea
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/198ae6bac21ab5be28e5fc511779419494c9fb99 b/fuzz/corpus/fuzz_ds_tree/198ae6bac21ab5be28e5fc511779419494c9fb99
new file mode 100644
index 000000000..b19788458
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/198ae6bac21ab5be28e5fc511779419494c9fb99
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/1ce15b6859d8d0d4b5254dcbb4981252c510fa9f b/fuzz/corpus/fuzz_ds_tree/1ce15b6859d8d0d4b5254dcbb4981252c510fa9f
new file mode 100644
index 000000000..877f89b7c
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/1ce15b6859d8d0d4b5254dcbb4981252c510fa9f
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/20c7e487a03376e9aee47466a79aa92ee242160c b/fuzz/corpus/fuzz_ds_tree/20c7e487a03376e9aee47466a79aa92ee242160c
new file mode 100644
index 000000000..dd7b33346
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/20c7e487a03376e9aee47466a79aa92ee242160c
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/241b26ca01fa5bbb08b23913607309f5063017bd b/fuzz/corpus/fuzz_ds_tree/241b26ca01fa5bbb08b23913607309f5063017bd
new file mode 100644
index 000000000..e3755a3e9
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/241b26ca01fa5bbb08b23913607309f5063017bd
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/24cf5c21b413b0e45721eb80edc898cf6e5f95dd b/fuzz/corpus/fuzz_ds_tree/24cf5c21b413b0e45721eb80edc898cf6e5f95dd
new file mode 100644
index 000000000..ad5333604
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/24cf5c21b413b0e45721eb80edc898cf6e5f95dd
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/27bb822705fabbf14078bef7ed2d0433d82fdad1 b/fuzz/corpus/fuzz_ds_tree/27bb822705fabbf14078bef7ed2d0433d82fdad1
new file mode 100644
index 000000000..31803b90c
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/27bb822705fabbf14078bef7ed2d0433d82fdad1
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/29ffc26a0ce83f654710b5de2a597507fc5729dc b/fuzz/corpus/fuzz_ds_tree/29ffc26a0ce83f654710b5de2a597507fc5729dc
new file mode 100644
index 000000000..5b7ea38a3
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/29ffc26a0ce83f654710b5de2a597507fc5729dc
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/2a0a2417d7a84b25f766e86673e47ec54fb00cbe b/fuzz/corpus/fuzz_ds_tree/2a0a2417d7a84b25f766e86673e47ec54fb00cbe
new file mode 100644
index 000000000..33b7a0be7
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/2a0a2417d7a84b25f766e86673e47ec54fb00cbe
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/2cafac567b408f64684f253a5b7b9a4b2e59568b b/fuzz/corpus/fuzz_ds_tree/2cafac567b408f64684f253a5b7b9a4b2e59568b
new file mode 100644
index 000000000..e449db517
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/2cafac567b408f64684f253a5b7b9a4b2e59568b
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/33211be3cf6ed2000eb1d2c75adcc855ed33b8e4 b/fuzz/corpus/fuzz_ds_tree/33211be3cf6ed2000eb1d2c75adcc855ed33b8e4
new file mode 100644
index 000000000..2772017dd
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/33211be3cf6ed2000eb1d2c75adcc855ed33b8e4
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/3a74d9d9143e2f5df4ae9c51d4ee3e6cce73d4cf b/fuzz/corpus/fuzz_ds_tree/3a74d9d9143e2f5df4ae9c51d4ee3e6cce73d4cf
new file mode 100644
index 000000000..1eea85452
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/3a74d9d9143e2f5df4ae9c51d4ee3e6cce73d4cf
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/3caf90a302b81895258b6a355d4a91a6c07cb332 b/fuzz/corpus/fuzz_ds_tree/3caf90a302b81895258b6a355d4a91a6c07cb332
new file mode 100644
index 000000000..dbedbc825
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/3caf90a302b81895258b6a355d4a91a6c07cb332
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/445082741fc8b6b486a198c23d86b885e6d14ce7 b/fuzz/corpus/fuzz_ds_tree/445082741fc8b6b486a198c23d86b885e6d14ce7
new file mode 100644
index 000000000..2185b2d0f
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/445082741fc8b6b486a198c23d86b885e6d14ce7
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/4978959b1a5996c384acf6a9bd14245625b66d46 b/fuzz/corpus/fuzz_ds_tree/4978959b1a5996c384acf6a9bd14245625b66d46
new file mode 100644
index 000000000..092798ccf
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/4978959b1a5996c384acf6a9bd14245625b66d46
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/4b5604ce8974b23a19948af1185f682c1e1ae8c1 b/fuzz/corpus/fuzz_ds_tree/4b5604ce8974b23a19948af1185f682c1e1ae8c1
new file mode 100644
index 000000000..dec299649
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/4b5604ce8974b23a19948af1185f682c1e1ae8c1
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/51b2a0ef859f67c0dca37efea91b2a2e4ddc520c b/fuzz/corpus/fuzz_ds_tree/51b2a0ef859f67c0dca37efea91b2a2e4ddc520c
new file mode 100644
index 000000000..baaec0b68
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/51b2a0ef859f67c0dca37efea91b2a2e4ddc520c
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/546c3bd16ec1d25eac5f1807b95bf57632a0542f b/fuzz/corpus/fuzz_ds_tree/546c3bd16ec1d25eac5f1807b95bf57632a0542f
new file mode 100644
index 000000000..7d88ad45a
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/546c3bd16ec1d25eac5f1807b95bf57632a0542f
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/583d48c2482fd1679a98c1748b31d07a87f06b55 b/fuzz/corpus/fuzz_ds_tree/583d48c2482fd1679a98c1748b31d07a87f06b55
new file mode 100644
index 000000000..7b78eadd3
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/583d48c2482fd1679a98c1748b31d07a87f06b55
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/591bd120f211dcffd75a4ac0529b847ed9945f57 b/fuzz/corpus/fuzz_ds_tree/591bd120f211dcffd75a4ac0529b847ed9945f57
new file mode 100644
index 000000000..6d59d9f09
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/591bd120f211dcffd75a4ac0529b847ed9945f57
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/5ee209f4deac4b64ede9a037ad33d271421a5146 b/fuzz/corpus/fuzz_ds_tree/5ee209f4deac4b64ede9a037ad33d271421a5146
new file mode 100644
index 000000000..4072369c8
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/5ee209f4deac4b64ede9a037ad33d271421a5146
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/6b2c2e41b2ca90992d615a3a7c580c5332610bfc b/fuzz/corpus/fuzz_ds_tree/6b2c2e41b2ca90992d615a3a7c580c5332610bfc
new file mode 100644
index 000000000..4c2458111
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/6b2c2e41b2ca90992d615a3a7c580c5332610bfc
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/75232df37bc7fd2864305542cfed6d5d050394b1 b/fuzz/corpus/fuzz_ds_tree/75232df37bc7fd2864305542cfed6d5d050394b1
new file mode 100644
index 000000000..5f5efc103
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/75232df37bc7fd2864305542cfed6d5d050394b1
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/753305c57fbdd9c0eaf41e6abd9f74036eab4b60 b/fuzz/corpus/fuzz_ds_tree/753305c57fbdd9c0eaf41e6abd9f74036eab4b60
new file mode 100644
index 000000000..7b7b617d8
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/753305c57fbdd9c0eaf41e6abd9f74036eab4b60
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/78cc5b473811aa993c3b7c88ffbed05187b6cd99 b/fuzz/corpus/fuzz_ds_tree/78cc5b473811aa993c3b7c88ffbed05187b6cd99
new file mode 100644
index 000000000..82029a8e7
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/78cc5b473811aa993c3b7c88ffbed05187b6cd99
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/7ac6b622dbe77fef5aa9f34f7170ed199ed1fd73 b/fuzz/corpus/fuzz_ds_tree/7ac6b622dbe77fef5aa9f34f7170ed199ed1fd73
new file mode 100644
index 000000000..e5e340cd2
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/7ac6b622dbe77fef5aa9f34f7170ed199ed1fd73
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/7b71687d14b357cc790e7855d92829c73f1caae5 b/fuzz/corpus/fuzz_ds_tree/7b71687d14b357cc790e7855d92829c73f1caae5
new file mode 100644
index 000000000..926944e0f
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/7b71687d14b357cc790e7855d92829c73f1caae5
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/7cdbbf403d12e497d96caa65d454d422167053d1 b/fuzz/corpus/fuzz_ds_tree/7cdbbf403d12e497d96caa65d454d422167053d1
new file mode 100644
index 000000000..625e08f59
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/7cdbbf403d12e497d96caa65d454d422167053d1
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/82f4a4e8d17333226fe80f2bce8ef37d33d8a8f0 b/fuzz/corpus/fuzz_ds_tree/82f4a4e8d17333226fe80f2bce8ef37d33d8a8f0
new file mode 100644
index 000000000..88363b25c
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/82f4a4e8d17333226fe80f2bce8ef37d33d8a8f0
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/8586c1e00b83a070b54db1672d29c6890f23174d b/fuzz/corpus/fuzz_ds_tree/8586c1e00b83a070b54db1672d29c6890f23174d
new file mode 100644
index 000000000..0bfa61288
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/8586c1e00b83a070b54db1672d29c6890f23174d
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/8a555e581a4ed7164e311b75291d73a6a6aa25ce b/fuzz/corpus/fuzz_ds_tree/8a555e581a4ed7164e311b75291d73a6a6aa25ce
new file mode 100644
index 000000000..f5309ab4e
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/8a555e581a4ed7164e311b75291d73a6a6aa25ce
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/8b16f2f2917796d5becb502f540dbc1a77645614 b/fuzz/corpus/fuzz_ds_tree/8b16f2f2917796d5becb502f540dbc1a77645614
new file mode 100644
index 000000000..2581944ee
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/8b16f2f2917796d5becb502f540dbc1a77645614
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/904a157a101a0771744b115e726f45fde3eda4b8 b/fuzz/corpus/fuzz_ds_tree/904a157a101a0771744b115e726f45fde3eda4b8
new file mode 100644
index 000000000..41474969a
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/904a157a101a0771744b115e726f45fde3eda4b8
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/90cf625aeb7846a5e9d860a9e920afb3e8657899 b/fuzz/corpus/fuzz_ds_tree/90cf625aeb7846a5e9d860a9e920afb3e8657899
new file mode 100644
index 000000000..260adb925
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/90cf625aeb7846a5e9d860a9e920afb3e8657899
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/95402f0bd80b42926a317c1606747289428eeb96 b/fuzz/corpus/fuzz_ds_tree/95402f0bd80b42926a317c1606747289428eeb96
new file mode 100644
index 000000000..cc61b2081
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/95402f0bd80b42926a317c1606747289428eeb96
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/96793225335720b78dd4de48be03aabe8487d533 b/fuzz/corpus/fuzz_ds_tree/96793225335720b78dd4de48be03aabe8487d533
new file mode 100644
index 000000000..6bb677bfb
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/96793225335720b78dd4de48be03aabe8487d533
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/985be9edded73c57832ed96828f93fbcf4b7bdbc b/fuzz/corpus/fuzz_ds_tree/985be9edded73c57832ed96828f93fbcf4b7bdbc
new file mode 100644
index 000000000..4127ea76d
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/985be9edded73c57832ed96828f93fbcf4b7bdbc
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/9949825ec99cd8993cb6d3cf61b78f1daca002d9 b/fuzz/corpus/fuzz_ds_tree/9949825ec99cd8993cb6d3cf61b78f1daca002d9
new file mode 100644
index 000000000..076bd174c
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/9949825ec99cd8993cb6d3cf61b78f1daca002d9
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/9b01aca36cc45c533cc9b8a505af7a1696d622ec b/fuzz/corpus/fuzz_ds_tree/9b01aca36cc45c533cc9b8a505af7a1696d622ec
new file mode 100644
index 000000000..791ebbdea
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/9b01aca36cc45c533cc9b8a505af7a1696d622ec
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/a17482d70812b76794e2a68373fe1aacb70bb983 b/fuzz/corpus/fuzz_ds_tree/a17482d70812b76794e2a68373fe1aacb70bb983
new file mode 100644
index 000000000..2bf3e180e
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/a17482d70812b76794e2a68373fe1aacb70bb983
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/a1c03aa549f9e6aef57b8f5503ec4b4c1329c7ba b/fuzz/corpus/fuzz_ds_tree/a1c03aa549f9e6aef57b8f5503ec4b4c1329c7ba
new file mode 100644
index 000000000..ed6f26190
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/a1c03aa549f9e6aef57b8f5503ec4b4c1329c7ba
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/a80d8aae221736aa612f8a82b202f5fce0eb9500 b/fuzz/corpus/fuzz_ds_tree/a80d8aae221736aa612f8a82b202f5fce0eb9500
new file mode 100644
index 000000000..0d98f2019
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/a80d8aae221736aa612f8a82b202f5fce0eb9500
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/aa5f590b2f8ae90f488320a5c0ce1664b6250141 b/fuzz/corpus/fuzz_ds_tree/aa5f590b2f8ae90f488320a5c0ce1664b6250141
new file mode 100644
index 000000000..7f5cb4d5f
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/aa5f590b2f8ae90f488320a5c0ce1664b6250141
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/aaf511006fc46ca08449d6f4988822988369725c b/fuzz/corpus/fuzz_ds_tree/aaf511006fc46ca08449d6f4988822988369725c
new file mode 100644
index 000000000..01b1775c8
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/aaf511006fc46ca08449d6f4988822988369725c
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/ae84c8f1709ff8fcefae24ebc14ffbfeebca84a8 b/fuzz/corpus/fuzz_ds_tree/ae84c8f1709ff8fcefae24ebc14ffbfeebca84a8
new file mode 100644
index 000000000..6a2695883
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/ae84c8f1709ff8fcefae24ebc14ffbfeebca84a8
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/b422ce7e471537303b914cf709aeeb5997183e13 b/fuzz/corpus/fuzz_ds_tree/b422ce7e471537303b914cf709aeeb5997183e13
new file mode 100644
index 000000000..423087277
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/b422ce7e471537303b914cf709aeeb5997183e13
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/ba04de28b49c623e55bfd4782f2e02bdfe98f0ee b/fuzz/corpus/fuzz_ds_tree/ba04de28b49c623e55bfd4782f2e02bdfe98f0ee
new file mode 100644
index 000000000..b6476e4e5
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/ba04de28b49c623e55bfd4782f2e02bdfe98f0ee
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/bae61b9f18afd63d2b282bf4319679d5275370dc b/fuzz/corpus/fuzz_ds_tree/bae61b9f18afd63d2b282bf4319679d5275370dc
new file mode 100644
index 000000000..76e39b151
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/bae61b9f18afd63d2b282bf4319679d5275370dc
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/c5613508b05a5ce7495f6b7b5c1080715c9f94e1 b/fuzz/corpus/fuzz_ds_tree/c5613508b05a5ce7495f6b7b5c1080715c9f94e1
new file mode 100644
index 000000000..2551b0887
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/c5613508b05a5ce7495f6b7b5c1080715c9f94e1
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/c75804765207820234ad3053f61007ab0e4445b4 b/fuzz/corpus/fuzz_ds_tree/c75804765207820234ad3053f61007ab0e4445b4
new file mode 100644
index 000000000..6b1372107
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/c75804765207820234ad3053f61007ab0e4445b4
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/d05019c14442561387c50ba71c173140c1e0770f b/fuzz/corpus/fuzz_ds_tree/d05019c14442561387c50ba71c173140c1e0770f
new file mode 100644
index 000000000..ae89d94d7
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/d05019c14442561387c50ba71c173140c1e0770f
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/d5b7e460b128cc07b7dbe2f845e8692370f9e2ef b/fuzz/corpus/fuzz_ds_tree/d5b7e460b128cc07b7dbe2f845e8692370f9e2ef
new file mode 100644
index 000000000..9c2b44e2b
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/d5b7e460b128cc07b7dbe2f845e8692370f9e2ef
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/e67f707ba8191170abba4703bb4f4192a0958939 b/fuzz/corpus/fuzz_ds_tree/e67f707ba8191170abba4703bb4f4192a0958939
new file mode 100644
index 000000000..12868aac5
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/e67f707ba8191170abba4703bb4f4192a0958939
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/ea4d4c2a8e91bd84473dac1e586d68d5c5451f5e b/fuzz/corpus/fuzz_ds_tree/ea4d4c2a8e91bd84473dac1e586d68d5c5451f5e
new file mode 100644
index 000000000..c16c98167
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/ea4d4c2a8e91bd84473dac1e586d68d5c5451f5e
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/eb386659c5a7aef8b95a191b90684d608d664a36 b/fuzz/corpus/fuzz_ds_tree/eb386659c5a7aef8b95a191b90684d608d664a36
new file mode 100644
index 000000000..e84b9842c
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/eb386659c5a7aef8b95a191b90684d608d664a36
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/f0ba5409fa8e20e3220a2d12c9d9fe39cd2818d9 b/fuzz/corpus/fuzz_ds_tree/f0ba5409fa8e20e3220a2d12c9d9fe39cd2818d9
new file mode 100644
index 000000000..bdef90f35
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/f0ba5409fa8e20e3220a2d12c9d9fe39cd2818d9
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/f18edcec12f7c8b5e1de7a43f3cb818677164e49 b/fuzz/corpus/fuzz_ds_tree/f18edcec12f7c8b5e1de7a43f3cb818677164e49
new file mode 100644
index 000000000..73737d8d5
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/f18edcec12f7c8b5e1de7a43f3cb818677164e49
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/f3259e536d2e75e24770e3afabf98a70a2e08932 b/fuzz/corpus/fuzz_ds_tree/f3259e536d2e75e24770e3afabf98a70a2e08932
new file mode 100644
index 000000000..200b24b81
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/f3259e536d2e75e24770e3afabf98a70a2e08932
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/f4318383dfd035c660f6454b98e0ee85846e6f9d b/fuzz/corpus/fuzz_ds_tree/f4318383dfd035c660f6454b98e0ee85846e6f9d
new file mode 100644
index 000000000..9db6b5690
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/f4318383dfd035c660f6454b98e0ee85846e6f9d
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/f45ab2dcdc5e5b00f36ba223500dde998ae877f2 b/fuzz/corpus/fuzz_ds_tree/f45ab2dcdc5e5b00f36ba223500dde998ae877f2
new file mode 100644
index 000000000..49b36dfed
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/f45ab2dcdc5e5b00f36ba223500dde998ae877f2
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_tree/fc82def89dce7a25407e29cb6553747e9dbefcb5 b/fuzz/corpus/fuzz_ds_tree/fc82def89dce7a25407e29cb6553747e9dbefcb5
new file mode 100644
index 000000000..9941e8379
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_tree/fc82def89dce7a25407e29cb6553747e9dbefcb5
Binary files differ
diff --git a/fuzz/dictionary.dict b/fuzz/dictionary.dict
new file mode 100644
index 000000000..f6c9b420b
--- /dev/null
+++ b/fuzz/dictionary.dict
@@ -0,0 +1,66 @@
+#USENET
+
+"AUTHINFO USER "
+"MODE READER\x0D\x0A"
+"HELP\x0D\x0A"
+
+#FTP_DATA
+
+"RIFF"
+"MZ"
+"OggS"
+"PK\x03\x04"
+"\x00\x00\x01\xBA"
+"Rar!"
+"\x1A\x45\xDF\xA3"
+"\xFF\xD8"
+"GIF8"
+"\x3C\x3F\x70\x68"
+"\x23\x21\x2F\x62"
+"%PDF"
+"\x89PNG"
+"<htm"
+"\x0A<!D"
+"\x37\x7A\xBC\xAF"
+"\x1F\x8B\x08"
+"<!DO"
+"fLaC"
+"ID3\x03"
+"\xFF\xFB\x90\xC0"
+"\xED\xAB\xEE\xDB"
+"WzPa"
+"FLV\x01"
+"TAPE"
+"\xD0\xCF\x11\xE0"
+"\x3C\x25\x40\x20"
+"\x3C\x21\x2D\x2D"
+"!<ar"
+"<?xm"
+"<iq "
+"SPFI"
+"ABIF"
+"BZh9"
+"<cf"
+"<CF"
+".tem"
+".ite"
+".lef"
+
+#Some interesting user agent
+
+"Azureus "
+"BitTorrent"
+"BTWebClient"
+"Shareaza "
+"Mozilla"
+"Mozilla/4.0 "
+"Mozilla/4.0 (compatible; MSIE 6.0;"
+"BearShare Lite "
+"Microsoft-Delivery-Optimization/"
+"Patcher"
+"AspINet"
+"Valve/Steam HTTP Client"
+"MacTVUP"
+"Blizzard Web Client"
+"Blizzard Downloader"
+"Zattoo/4"
diff --git a/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp b/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp
index 9ee2156be..9762104c5 100644
--- a/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp
+++ b/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp
@@ -46,7 +46,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
alpha = fuzzed_data.ConsumeFloatingPointInRange<double>(0, 1);
beta = fuzzed_data.ConsumeFloatingPointInRange<double>(0, 1);
gamma = fuzzed_data.ConsumeFloatingPointInRange<double>(0, 1);
- significance = fuzzed_data.ConsumeFloatingPointInRange<float>(0, 1);
+ significance = fuzzed_data.ConsumeFloatingPointInRange<float>(0, 1.1);
rc_hw = ndpi_hw_init(&hw, num_periods, additive_seeasonal,
alpha, beta, gamma, significance);
/* Init RSI */
diff --git a/fuzz/fuzz_alg_ses_des.cpp b/fuzz/fuzz_alg_ses_des.cpp
index 70efef3d0..45c1f189e 100644
--- a/fuzz/fuzz_alg_ses_des.cpp
+++ b/fuzz/fuzz_alg_ses_des.cpp
@@ -32,7 +32,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
ndpi_des_fitting(values, num_iteration, &alpha_des, &beta);
ndpi_free(values);
- significance = fuzzed_data.ConsumeFloatingPointInRange<float>(0, 1);
+ significance = fuzzed_data.ConsumeFloatingPointInRange<float>(0, 1.1);
rc_ses = ndpi_ses_init(&s, alpha_ses, significance);
rc_des = ndpi_des_init(&d, alpha_des, beta, significance);
diff --git a/fuzz/fuzz_common_code.c b/fuzz/fuzz_common_code.c
index e4ab68ad8..30dc5baa7 100644
--- a/fuzz/fuzz_common_code.c
+++ b/fuzz/fuzz_common_code.c
@@ -34,22 +34,23 @@ void fuzz_set_alloc_callbacks_and_seed(int seed)
fuzz_set_alloc_seed(seed);
}
-void fuzz_init_detection_module(struct ndpi_detection_module_struct **ndpi_info_mod,
- int enable_log)
+void fuzz_init_detection_module(struct ndpi_detection_module_struct **ndpi_info_mod)
{
ndpi_init_prefs prefs = ndpi_enable_ja3_plus;
- NDPI_PROTOCOL_BITMASK all, debug_bitmask;
+ NDPI_PROTOCOL_BITMASK all;
if(*ndpi_info_mod == NULL) {
*ndpi_info_mod = ndpi_init_detection_module(prefs);
NDPI_BITMASK_SET_ALL(all);
ndpi_set_protocol_detection_bitmask2(*ndpi_info_mod, &all);
- if(enable_log) {
- NDPI_BITMASK_SET_ALL(debug_bitmask);
- ndpi_set_log_level(*ndpi_info_mod, 4);
- ndpi_set_debug_bitmask(*ndpi_info_mod, debug_bitmask);
- }
+#if 0
+ NDPI_PROTOCOL_BITMASK debug_bitmask;
+
+ NDPI_BITMASK_SET_ALL(debug_bitmask);
+ ndpi_set_log_level(*ndpi_info_mod, 4);
+ ndpi_set_debug_bitmask(*ndpi_info_mod, debug_bitmask);
+#endif
ndpi_load_protocols_file(*ndpi_info_mod, "protos.txt");
ndpi_load_categories_file(*ndpi_info_mod, "categories.txt", NULL);
diff --git a/fuzz/fuzz_common_code.h b/fuzz/fuzz_common_code.h
index 84670a0bb..02df3e0cc 100644
--- a/fuzz/fuzz_common_code.h
+++ b/fuzz/fuzz_common_code.h
@@ -8,8 +8,7 @@ extern "C"
{
#endif
-void fuzz_init_detection_module(struct ndpi_detection_module_struct **ndpi_info_mod,
- int enable_log);
+void fuzz_init_detection_module(struct ndpi_detection_module_struct **ndpi_info_mod);
/* To allow memory allocation failures */
void fuzz_set_alloc_callbacks(void);
diff --git a/fuzz/fuzz_community_id.cpp b/fuzz/fuzz_community_id.cpp
new file mode 100644
index 000000000..3a029ec79
--- /dev/null
+++ b/fuzz/fuzz_community_id.cpp
@@ -0,0 +1,58 @@
+#include "ndpi_api.h"
+#include "fuzz_common_code.h"
+
+#include <stdint.h>
+#include <stdio.h>
+#include <assert.h>
+#include "fuzzer/FuzzedDataProvider.h"
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ FuzzedDataProvider fuzzed_data(data, size);
+ u_int8_t is_ipv6, l4_proto, icmp_type, icmp_code;
+ u_int16_t src_port, dst_port;
+ u_char *hash_buf;
+ u_int8_t hash_buf_len;
+
+ /* Just to have some data */
+
+ /* To allow memory allocation failures */
+ fuzz_set_alloc_callbacks_and_seed(size);
+
+ is_ipv6 = fuzzed_data.ConsumeBool();
+ l4_proto = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ src_port = fuzzed_data.ConsumeIntegral<u_int16_t>();
+ dst_port = fuzzed_data.ConsumeIntegral<u_int16_t>();
+ icmp_type = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ icmp_code = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ hash_buf_len = fuzzed_data.ConsumeIntegralInRange(0, 64);
+ hash_buf = (u_char *)ndpi_malloc(hash_buf_len);
+ if (!hash_buf)
+ return 0;
+
+ if (!is_ipv6) {
+ u_int32_t src_ip, dst_ip;
+
+ src_ip = fuzzed_data.ConsumeIntegral<u_int32_t>();
+ dst_ip = fuzzed_data.ConsumeIntegral<u_int32_t>();
+
+ ndpi_flowv4_flow_hash(l4_proto, src_ip, dst_ip, src_port, dst_port,
+ icmp_type, icmp_code, hash_buf, hash_buf_len);
+ } else {
+ u_char *src_ip, *dst_ip;
+
+ if(fuzzed_data.remaining_bytes() >= 32) {
+ std::vector<u_int8_t>data1 = fuzzed_data.ConsumeBytes<u_int8_t>(16);
+ src_ip = data1.data();
+ std::vector<u_int8_t>data2 = fuzzed_data.ConsumeBytes<u_int8_t>(16);
+ dst_ip = data2.data();
+
+ ndpi_flowv6_flow_hash(l4_proto, (struct ndpi_in6_addr *)src_ip,
+ (struct ndpi_in6_addr *)dst_ip, src_port, dst_port,
+ icmp_type, icmp_code, hash_buf, hash_buf_len);
+ }
+ }
+
+ ndpi_free(hash_buf);
+
+ return 0;
+}
diff --git a/fuzz/fuzz_config.cpp b/fuzz/fuzz_config.cpp
index d43ede13a..c5e404391 100644
--- a/fuzz/fuzz_config.cpp
+++ b/fuzz/fuzz_config.cpp
@@ -23,7 +23,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
if(fuzzed_data.remaining_bytes() < 4 + /* ndpi_init_detection_module() */
NDPI_MAX_SUPPORTED_PROTOCOLS + NDPI_MAX_NUM_CUSTOM_PROTOCOLS +
5 + /* files */
- (NDPI_LRUCACHE_MAX * 5) + /* LRU caches */
+ ((NDPI_LRUCACHE_MAX + 1) * 5) + /* LRU caches */
2 + 1 + 4 + /* ndpi_set_detection_preferences() */
7 + /* Opportunistic tls */
29 /* Min real data: ip length + udp length + 1 byte */)
@@ -55,7 +55,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
if(fuzzed_data.ConsumeBool())
ndpi_load_malicious_sha1_file(ndpi_info_mod, "sha1_fingerprints.csv");
- for(i = 0; i < NDPI_LRUCACHE_MAX; i++) {
+ for(i = 0; i < NDPI_LRUCACHE_MAX + 1; i++) { /* + 1 to test invalid type */
ndpi_set_lru_cache_size(ndpi_info_mod, static_cast<lru_cache_type>(i),
fuzzed_data.ConsumeIntegralInRange(0, (1 << 16) - 1));
ndpi_get_lru_cache_size(ndpi_info_mod, static_cast<lru_cache_type>(i), &num);
@@ -98,14 +98,20 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
assert(pkt.size() >= 29); /* To be sure check on fuzzed_data.remaining_bytes() at the beginning is right */
ndpi_detection_process_packet(ndpi_info_mod, &flow, pkt.data(), pkt.size(), 0, NULL);
ndpi_detection_giveup(ndpi_info_mod, &flow, 1, &protocol_was_guessed);
+ /* ndpi_guess_undetected_protocol() is a "strange" function (since is ipv4 only)
+ but it is exported by the library and it is used by ntopng. Try fuzzing it, here */
+ if(!flow.is_ipv6)
+ ndpi_guess_undetected_protocol(ndpi_info_mod, &flow, flow.l4_proto,
+ flow.c_address.v4, flow.s_address.v4,
+ flow.c_port, flow.s_port);
ndpi_free_flow_data(&flow);
/* Get some final stats */
- for(i = 0; i < NDPI_LRUCACHE_MAX; i++)
+ for(i = 0; i < NDPI_LRUCACHE_MAX + 1; i++) /* + 1 to test invalid type */
ndpi_get_lru_cache_stats(ndpi_info_mod, static_cast<lru_cache_type>(i), &lru_stats);
- for(i = 0; i < NDPI_PTREE_MAX; i++)
+ for(i = 0; i < NDPI_PTREE_MAX + 1; i++) /* + 1 to test invalid type */
ndpi_get_patricia_stats(ndpi_info_mod, static_cast<ptree_type>(i), &patricia_stats);
- for(i = 0; i < NDPI_AUTOMA_MAX; i++)
+ for(i = 0; i < NDPI_AUTOMA_MAX + 1; i++) /* + 1 to test invalid type */
ndpi_get_automa_stats(ndpi_info_mod, static_cast<automa_type>(i), &automa_stats);
ndpi_exit_detection_module(ndpi_info_mod);
diff --git a/fuzz/fuzz_ds_ahocorasick.cpp b/fuzz/fuzz_ds_ahocorasick.cpp
index 67521811e..cd56058e1 100644
--- a/fuzz/fuzz_ds_ahocorasick.cpp
+++ b/fuzz/fuzz_ds_ahocorasick.cpp
@@ -59,10 +59,11 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
ac_pattern.astring = value_dup;
ac_pattern.length = strlen(value_dup);
- ac_pattern.rep.number = 0;
+ ac_pattern.rep.number = fuzzed_data.ConsumeIntegral<u_int16_t>();
ac_pattern.rep.category = 0;
ac_pattern.rep.breed = 0;
ac_pattern.rep.level = fuzzed_data.ConsumeIntegralInRange(0, 2);
+ ac_pattern.rep.from_start = fuzzed_data.ConsumeBool();
ac_pattern.rep.at_end = fuzzed_data.ConsumeBool();
ac_pattern.rep.dot = memchr(value_dup, '.', strlen(value_dup)) != NULL;
diff --git a/fuzz/fuzz_ds_libcache.cpp b/fuzz/fuzz_ds_libcache.cpp
new file mode 100644
index 000000000..f4b30092f
--- /dev/null
+++ b/fuzz/fuzz_ds_libcache.cpp
@@ -0,0 +1,68 @@
+#include "ndpi_api.h"
+#include "../src/lib/third_party/include/libcache.h"
+#include "fuzz_common_code.h"
+
+#include <stdint.h>
+#include <stdio.h>
+#include <assert.h>
+#include "fuzzer/FuzzedDataProvider.h"
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ FuzzedDataProvider fuzzed_data(data, size);
+ u_int16_t i, rc, num_iteration, data_len, is_added = 0;
+ std::vector<u_int8_t>value_added;
+ cache_t c;
+
+ /* Just to have some data */
+ if (fuzzed_data.remaining_bytes() < 2048)
+ return -1;
+
+ /* To allow memory allocation failures */
+ fuzz_set_alloc_callbacks_and_seed(size);
+
+ c = cache_new(fuzzed_data.ConsumeIntegral<u_int8_t>());
+
+ num_iteration = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ for (i = 0; i < num_iteration; i++) {
+
+ data_len = fuzzed_data.ConsumeIntegralInRange(0, 127);
+ std::vector<u_int8_t>data = fuzzed_data.ConsumeBytes<u_int8_t>(data_len);
+
+ rc = cache_add(c, data.data(), data.size());
+ /* Keep one random entry really added */
+ if (rc == CACHE_NO_ERROR && is_added == 0 && fuzzed_data.ConsumeBool()) {
+ value_added = data;
+ is_added = 1;
+ }
+ }
+
+ /* "Random" search */
+ num_iteration = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ for (i = 0; i < num_iteration; i++) {
+ data_len = fuzzed_data.ConsumeIntegralInRange(0, 127);
+ std::vector<u_int8_t>data = fuzzed_data.ConsumeBytes<u_int8_t>(data_len);
+
+ cache_contains(c, data.data(), data.size());
+ }
+ /* Search of an added entry */
+ if (is_added) {
+ cache_contains(c, value_added.data(), value_added.size());
+ }
+
+ /* "Random" remove */
+ num_iteration = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ for (i = 0; i < num_iteration; i++) {
+ data_len = fuzzed_data.ConsumeIntegralInRange(0, 127);
+ std::vector<u_int8_t>data = fuzzed_data.ConsumeBytes<u_int8_t>(data_len);
+
+ cache_remove(c, data.data(), data.size());
+ }
+ /* Remove of an added entry */
+ if (is_added) {
+ cache_remove(c, value_added.data(), value_added.size());
+ }
+
+ cache_free(c);
+
+ return 0;
+}
diff --git a/fuzz/fuzz_ds_patricia.cpp b/fuzz/fuzz_ds_patricia.cpp
index c514f3b00..4655ee94f 100644
--- a/fuzz/fuzz_ds_patricia.cpp
+++ b/fuzz/fuzz_ds_patricia.cpp
@@ -128,8 +128,8 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
ndpi_patricia_remove(p, node);
}
} else {
- if(fuzzed_data.remaining_bytes() > 128) {
- std::vector<u_int8_t>data = fuzzed_data.ConsumeBytes<u_int8_t>(128);
+ if(fuzzed_data.remaining_bytes() > 16) {
+ std::vector<u_int8_t>data = fuzzed_data.ConsumeBytes<u_int8_t>(16);
ip = data.data();
ip_len = fuzzed_data.ConsumeIntegralInRange(0, 128);
ndpi_fill_prefix_v6(&prefix, (const struct in6_addr *)ip, ip_len, 128);
diff --git a/fuzz/fuzz_ds_tree.cpp b/fuzz/fuzz_ds_tree.cpp
new file mode 100644
index 000000000..ee00b1723
--- /dev/null
+++ b/fuzz/fuzz_ds_tree.cpp
@@ -0,0 +1,95 @@
+#include "ndpi_api.h"
+#include "fuzz_common_code.h"
+
+#include <stdint.h>
+#include <stdio.h>
+#include <assert.h>
+#include "fuzzer/FuzzedDataProvider.h"
+
+static int __compare(const void *a, const void *b)
+{
+ u_int32_t *entry_a, *entry_b;
+
+ entry_a = (u_int32_t *)a;
+ entry_b = (u_int32_t *)b;
+
+ return entry_a == entry_b ? 0 : (entry_a < entry_b ? -1 : +1);
+}
+static void __free(void * const node)
+{
+ u_int32_t *entry = (u_int32_t *)node;
+ ndpi_free(entry);
+}
+static void __walk(const void *a, ndpi_VISIT which, int depth, void *user_data)
+{
+ assert(user_data == NULL);
+ assert(a);
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ FuzzedDataProvider fuzzed_data(data, size);
+ u_int16_t i, num_iteration, is_added = 0;
+ void *root = NULL;
+ u_int32_t *entry, value_added, e;
+
+ /* Just to have some data */
+ if (fuzzed_data.remaining_bytes() < 1024)
+ return -1;
+
+ /* To allow memory allocation failures */
+ fuzz_set_alloc_callbacks_and_seed(size);
+
+ num_iteration = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ for (i = 0; i < num_iteration; i++) {
+ entry = (u_int32_t *)ndpi_malloc(sizeof(u_int32_t));
+ if (!entry)
+ continue;
+ *entry = fuzzed_data.ConsumeIntegral<u_int32_t>();
+
+ if(ndpi_tfind(entry, &root, __compare) == NULL) {
+ if(ndpi_tsearch(entry, &root, __compare) == NULL) {
+ ndpi_free(entry);
+ } else {
+ /* Keep one random entry really added */
+ if (is_added == 0 && fuzzed_data.ConsumeBool()) {
+ value_added = *entry;
+ is_added = 1;
+ }
+ }
+ } else {
+ ndpi_free(entry);
+ }
+ }
+
+ /* "Random" search */
+ num_iteration = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ for (i = 0; i < num_iteration; i++) {
+ e = fuzzed_data.ConsumeIntegral<u_int32_t>();
+
+ ndpi_tfind(&e, &root, __compare);
+ }
+ /* Search of an added node */
+ if (is_added) {
+ ndpi_tfind(&value_added, &root, __compare);
+ }
+
+ ndpi_twalk(root, __walk, NULL);
+
+ /* "Random" delete */
+ num_iteration = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ for (i = 0; i < num_iteration; i++) {
+ e = fuzzed_data.ConsumeIntegral<u_int32_t>();
+
+ ndpi_tdelete(&e, &root, __compare);
+ }
+ /* Delete of an added node */
+ if (is_added) {
+ ndpi_tdelete(&value_added, &root, __compare);
+ }
+
+ ndpi_twalk(root, __walk, NULL);
+
+ ndpi_tdestroy(root, __free);
+
+ return 0;
+}
diff --git a/fuzz/fuzz_process_packet.c b/fuzz/fuzz_process_packet.c
index 7376f4fd8..dcd15c99e 100644
--- a/fuzz/fuzz_process_packet.c
+++ b/fuzz/fuzz_process_packet.c
@@ -12,7 +12,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
uint8_t protocol_was_guessed;
if (ndpi_info_mod == NULL) {
- fuzz_init_detection_module(&ndpi_info_mod, 0);
+ fuzz_init_detection_module(&ndpi_info_mod);
ndpi_init_serializer(&json_serializer, ndpi_serialization_format_json);
ndpi_init_serializer(&csv_serializer, ndpi_serialization_format_csv);
diff --git a/fuzz/fuzz_quic_get_crypto_data.c b/fuzz/fuzz_quic_get_crypto_data.c
index c0dc85f8c..728b7ec67 100644
--- a/fuzz/fuzz_quic_get_crypto_data.c
+++ b/fuzz/fuzz_quic_get_crypto_data.c
@@ -28,7 +28,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
u_int32_t first_int, version = 0;
if(ndpi_info_mod == NULL) {
- fuzz_init_detection_module(&ndpi_info_mod, 0);
+ fuzz_init_detection_module(&ndpi_info_mod);
flow = ndpi_calloc(1, SIZEOF_FLOW_STRUCT);
}