aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/cifuzz.yml2
-rw-r--r--.gitignore15
-rw-r--r--fuzz/Makefile.am156
-rw-r--r--fuzz/corpus/fuzz_alg_bins/04aef3ac068dd9f8fceb6c52bddf17c08b2a6f14bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_bins/07f5c4450bc1f59ef1e69956da5c40932663c871bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_bins/0897b66c9b17d2b58f618aa9e8a9ec8f3af482ebbin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_bins/16176acf04fda57834be5c8910fccea65a975d7abin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_bins/171f090f5642794f3f319e22d6fbad9c239a6839bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_bins/181b1bb3f2110d84a15fb2cd5b484541e3e141fabin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_bins/250bc6897c6b0621bc5fd8728bd06725fb1028fbbin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_bins/2a0245614746aa703c7bb437d8b0d891c4ba24e5bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_bins/5084dd963df4aaa93d944a08154626525cb17956bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_bins/57b7d05a9afa1f161022eab5a4446ec18a260a05bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_bins/6010cdccbe6c0051150ad352d48b623a75e72f9dbin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_bins/605d323697d62b27aef133ef38a152b53e16de7abin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_bins/6531edab6d1a10a02e75a8054f533ba1c123b1bbbin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_bins/89a9a706265902ba11dbb21359eb667b55fc4c63bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_bins/949d5f11ee916fdacd8fc1266339dbf10921572cbin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_bins/98a6ac61230b54b1680ab6f6c63780c327d5814ebin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_bins/b3ee96767d3269734127b707b4a26bdb160bef91bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_bins/b6da5ee0a15a36153ab9c7adb53dea8a4e991065bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_bins/c5c58b0d39325b36c8ee0ec3a1b755b5c1b1433abin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_bins/caaa27a7bb14ca0127fcdf0dfa73324357c2c1c9bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_bins/d418998b0479e9f3f50dae60cd58f13304aa4647bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_bins/d81fdc6f2115362d0c33e5621d29a67b94c5238bbin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_bins/da05f7ad93193548ce3fe3866c742fa3216c91c4bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_bins/dfdc12c392c55191512a98bdbed00325d6a805f1bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_bins/e45dc83c52f7056272bb2be4e89cc0e33539a694bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/00c5ce0c266f5fa909dee67399fba8addafa2fa2bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/033f20c7405b6d98f1ee5f76294f1dcb081f96bebin0 -> 2049 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/11c1b40491217270c6f11eeedf8277d39a585b4abin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/136cce4f84acc9a5ba48e74bb9ac8d7954cc20c1bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/1c026fec4502d65c08cbafb06f1d5cb22543f476bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/30519b1f6ed60867cb94efbc045196e89ab14a2ebin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/30b0c905db3cadc03e90ca3987da502d23b14d41bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/4824e8aff6d92f6adeea67e0b911bee6a43b6b43bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/5739b14d854fa7a04dc5fb034c90fef1507b6aaebin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/57be26b5725a893e64a4a7c0cdca91195a09f28abin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/5929408882e5b59457c87c7d2f474e7807c2ff01bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/5db48bac7956375628050868c62b845304fe81b1bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/650dfb00b580e2f5384f9ecdd481fc37164ff29fbin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/7478ad7c1a51d7780c8b9f915ac719d611435c0cbin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/7ad956d80f0eee90b85144465ed0e0a9e2a7f4b2bin0 -> 2068 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/8b1cb24c58fb2b39ab76a07fc07660a0b2a5fda4bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/8e4ea2e6eef7046813fa1390cfc8fb21106266b8bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/97554293ea90e26156f5a2c8901cac3acbc743a5bin0 -> 2049 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/99721df2d01460b4c7de6cd9ce2e4402a289ec93bin0 -> 2119 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/a050e8c6e4c9e9f0c1220130a95be4a31b2ab3c5bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/a0d3638e17629eb52582aa825cc44e6d9c7b0c6abin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/be54d0450acad7462c8c1520d7eaa556a8cd9458bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/bf620e4fedfc91c348b9003acc355e16794b2833bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/c6d2eabc9b7bc05be31ba43729c49ee34d40f9b0bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/c959731a02ddac2c0e5d73f95e7e2f19699a1141bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/cf63f099a31566f8b89ecf9ea9ce2af79bd3d2f2bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/d66d4cfeb9d523fc98f8004b656432d85d70561fbin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/db59ec014080a45b16ebd33b461c3c66e2670b36bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/dcf088a05d3aa301cc351fdc0a0227c092aecb0dbin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/de77de38e86ab70adfe2885248392fcb8d468fe7bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/dea5fdae1469fc19333192846c58fed1cc9f53c0bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/e087159934c116bddeff3f07d290f7cf16d8ea9bbin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/e4fcaac9ebcfd36edfb282e9b81a51ce46638103bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/eae5ae0f05ae2c77b0ead34d42be05982d74f008bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hll/ebde88ae2313b116caeb32f35965a9d13ea69b8cbin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/068a7079ad6069fabdeb42269ccd368c37b904bbbin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/172f5405b4d2548a578130c85458bd37f347c02abin0 -> 1027 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/29927946bbb09dcff4802d78c4c1ed17de74e35cbin0 -> 1048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/305c5b5b341d5b53ab7eabb5d6e29d7e5834701abin0 -> 1026 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/37d90f50c56d9f7b111cec169f5ab9bfb4d6c265bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/39de2d6559664ef14feac9fb22f9d6d4e331c3dfbin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/3ffba46fe2454bcc99f78c3dc6f88fe374064e61bin0 -> 1050 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/482a2a4e9fbf8d37e6a6b25d5e4114a680bba780bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/69258ba961995c724bda16e54849ddf4214b5268bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/714d9c6db5682d54dab9b32e1e0a0d9af41be7dbbin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/7e5d0a67d44dafd4c97dbae0f22df352ffa9a7a5bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/8140db22a442f2b6ff79f913295dc65ff002ce18bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/8b567822f6e99bbae5d45fe773b57d91eab80523bin0 -> 1053 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/8d7499281629925528f4b1d1965b30d18e8106ccbin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/92901274cc8053a25ebcd9dc16000573fefca890bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/9b72fac8d43778fdedf122582f6d35da9e4ba6e8bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/aa66765aef7c1f280eefd72fd6616462abae217abin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/b1aebf7ec4eb8f2100a67d5545db7abd5f6d8556bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/c4c961f05fc573875a692289729e4a57b74467edbin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/d4a95ebc106305a16fe8b089fef0cf79328b911ebin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/db09410fd87e8616ca33ad18c4f52549ea7766dfbin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/ded748c34764b43955ca5d8693dc090262aae9b4bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/df30fb4a79d6a748f1296e460a10695e9293f519bin0 -> 1025 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/e2677d230c3a18eba08de18044e2a113cff7175dbin0 -> 1039 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/e4959ac22e4f21a67586e2fdf0c100cc73cdcdfcbin0 -> 1049 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/e993681c7fa7481a0df63ac6a0ce725e869483abbin0 -> 1032 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/ec7e22e0af761943cf5a6c50e4805eb859f7cc02bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/ed72b23177552ec40326087c1bb655bbe7fe6eebbin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/f0a89263ed239a0e0cbadd745bee565781fc5f05bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/fcc649df2d13827fa80b4e366ed2b34397c86922bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/0ac1ef806b823a3244ad06308c60dd024beb134abin0 -> 1236 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/12dca6633f0276787a65a0a54d880a0f7f977667bin0 -> 2004 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/14c3f3080b695d67073d04ab6f44e07223077523bin0 -> 2938 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/16555af8fd71a3179941ab1bfeb55bd276f5ce16bin0 -> 1052 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/263b705d68b52a75539ad5a27493647a74606bfcbin0 -> 1292 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/2943d27f7a255e94a345d7e99933b22fdb7e5241bin0 -> 1926 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/38292b7b7faa2ce3a662e4006338a6ae1d6a4348bin0 -> 1031 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/393559caeac9551eda2d0402327c32a3559582b0bin0 -> 3921 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/42b84a49a98ce810b486ae6d89382c42b805a9fdbin0 -> 1309 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/57c2343f06a265a0da6ed9e4b9a02f59ead3980ebin0 -> 1300 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/5af63f2cec6b6757f01863f2988dc26f90e59964bin0 -> 3176 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/6b710d3620df7319158e4e27e731beb5964f170abin0 -> 1030 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/7207908605854165d1b34112205750b119cc4bcbbin0 -> 1288 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/72ff862c103b9c8794417a7540e96c132bbfc08fbin0 -> 3065 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/839ead75ffdd1033e4d3d327601bd1180958108abin0 -> 1069 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/83a4f7764cf7407c30976e5842e24d323a9ee485bin0 -> 1766 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/8e80c8a1c1013a1386e78fab8dfc632530bd0c50bin0 -> 1902 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/949c73200e6a34301acb2082f071cae9f594bbb8bin0 -> 1066 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/9861104f2984aa81e0b940d3735d047c626e2580bin0 -> 1395 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/a433baa189f8f8bd33fe9e8f5a4c714320646601bin0 -> 2032 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/a66c1b1182ff1db0c5bb0eabed5802ce85863f1fbin0 -> 1352 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/b1ae21b303b7e212e297b1f7ae7cb5510c40909cbin0 -> 1069 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/bb6ffe620367989689daa684fd5adda0a2bb37b4bin0 -> 1242 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/c2b3d51a6e9e0dc4bd1a69711a0e458436f429dfbin0 -> 1025 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/d081ce1d174bf696e5f99fe9c0072858275bcf72bin0 -> 1895 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/d3d566798a666aed486ec1fce968fedd51d63c44bin0 -> 1040 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/d4927bdfbe7f8c6902467f73fb15cd011b2a910ebin0 -> 1296 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/de46b7c49c020ca14635dfc46bd7bd5cef231c50bin0 -> 2756 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/eb7c4ce9c6a9689a8a1f830b7d630ebd39d0d93bbin0 -> 1445 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/ed73b4c4b7fde625f526f2b635ce89ac55ee2776bin0 -> 3172 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_jitter/faa89d552c2a56519a163c72e5cfa865037b14bdbin0 -> 2103 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/0013cd439eb3fb37426d24da871c2817e189a4d2bin0 -> 2052 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/0302070d6257c030b4475215d3a37e091479a5efbin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/03ac6ca559de24be39b7905badef47006bde1f51bin0 -> 2049 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/03ce939bba91061d7a4a020c101e23ff8b70ce1cbin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/0fc40cde5c54635905550672b222f49b5942bba4bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/10aa450d2edcdfe5654378f337ced8bb4e85fa8bbin0 -> 2058 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/11363c5f6ddc39ceabb41dc993456105c6d05dddbin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/12016c80dd42b75d0fcfef5ceceec6719c58e99fbin0 -> 2058 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/123c9d4b9e5dece29ff6f11746e02955f79f92fbbin0 -> 2314 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/13569f7a74488158bb1e8d3149caac45d23bd0f7bin0 -> 2050 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/169bc80e4a466117a8314f38962451ca37115ef4bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/21964b3aef63a455c439af0edb0319876c25139dbin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/249dab7a1b66e669af908f2df85f2699c8f57e95bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/28b03ea64eef571ad558691e1ec67104f9deac12bin0 -> 2312 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/2b87f55ff2fc70199a9a730539964db596e1f914bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/303516650a50c7296cd224b01bb339b4a8bc2de6bin0 -> 2054 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/3237b0b647b476779584c58b0d9c2041a162e3cdbin0 -> 2299 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/33929b11cd8c87583304a243b95ddd68f24f2905bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/34856406db53ad890908e752813217a83f56dc7bbin0 -> 2315 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/380bd2129e1d864d36cae6dfc07b1745a8c4567abin0 -> 2198 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/487a704ceff08291d76e6acc830bf586a08b062ebin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/50b4f149df2fb486c7ae2dbb1b4a599edc01e0a6bin0 -> 2329 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/57f834876c730fc488cca4a6c9437ab88c561af0bin0 -> 2351 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/581fc433dfdd173ef1e75d850030a89ee3ec513bbin0 -> 2063 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/58cc86bf62bc86e6ba81f5b2ab50276bb2b60d3bbin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/59131a07dafccba6e39e61b4cd96e3946850f443bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/5bdf102a2d05e8c7a4e34177cc06a878bc237490bin0 -> 2320 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/71898c74b5f12c1396a68797123ec3fa5f241088bin0 -> 2199 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/74f10ca83322f31e98351ed52331344a92161763bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/7bbe6e0541c9720ea56e52095e031f6779a1d49dbin0 -> 2200 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/7c7992e7ec61bc9a6f8911af0e4dad9d74eee7a3bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/828a525fed17014ea910085c549e4a9e7f8379f4bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/8996382e24ac33a4179e4217de15737323684c56bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/8a9fa2daade2fb9a1c4a034bdffb230a3cad16f8bin0 -> 2056 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/8c3c2c5faa479afc34fc3f279cca10185735fce4bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/8e315574ac2ad99f36a91fde5cbcc1793d674286bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/8e691df9aee855060ce243e6b655e6fdd5c156b1bin0 -> 2049 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/91e97992067d6ea4edaf24efcb4e290b18a891e3bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/93182a310374fd968b83d4e092644ac4a66693b9bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/b95101ee9055e9d2bf79fc65873505219fd106adbin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/bb7ff45c7186c060994d6baeba835912cb3d0241bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/bc5841c8c701c799d9e2df735081b9f321217bd7bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/bf62c9b21aaec058a7cc6fbd28845e5e5c0e7803bin0 -> 2051 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/c1f192833f86edf35fc2071cce804d0da7561231bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/c42986c70a3375ba84f7d22aaff2546a2d84c150bin0 -> 2049 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/c822d83b09f4f2d9e89aff2edc40d849fc88e236bin0 -> 2059 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/cd1cf754b7025891efd08e917c80da34db03b2d4bin0 -> 2064 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/cd7f2b750bd5120c22394e5045d58d4fd0ef36d1bin0 -> 2052 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/d05fbdddab7d87850e7ad82f817cbafd3c74bcf3bin0 -> 2313 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/d06b8e5d2cb3c09b193595a4832a2e99cccee7b1bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/e09f3079c7ab129e7e93af5891fd7c98d809d5cbbin0 -> 2049 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/e4d7c7448ad34c9c38af3722b78156b1a3b7eb77bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/e5fd64bfffb16b2667a8fa42c25847e964d8db33bin0 -> 2049 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/ef26a6b2c94b6d237a977ea4d7487091cd59910abin0 -> 2055 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/f08f75e5dc02a53872a999849712a21215108616bin0 -> 2055 bytes
-rw-r--r--fuzz/corpus/fuzz_alg_ses_des/f224b0e9ac62539afac36abe071221abcb7b9db2bin0 -> 2048 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/0872c9dcaffcd72797e288877c0dd38a3d1949fbbin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/0b339fdc42355c7326ff0aa40543d56f427be2abbin0 -> 1738 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/0c5a5d5dc3ff3e9df6c811f169f73c6e480b058ebin0 -> 1101 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/0ecac5501614fb5664fb520d8767de007c9662f71
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/13720bca310543d7922778c58bbc90b0adedaad9bin0 -> 1025 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/1411ace1b8e44f6d0ccf5d6bc5669663f8bee9d11
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/1ad24d7012604574786aab655b1bb2e38ec759f33
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/1b466d896dfdd72275059a53f21e5abbff8e58d2bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/1cb0a59f62c0c5bd4d6059ad1dd93643efcebe26bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/2e7f87f35104a62d1e029f01d22043208468c80cbin0 -> 1873 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/2ff35048123232a78e60d8f3420332b287b0f773bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/3318214ae4652b96520333ccbf49ce7a4ca6775dbin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/33e34758ed0b6efc73afd284b1971893a36195a1bin0 -> 2150 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/40e5e7655670bb158c7022b476ab67b2040a28d4bin0 -> 1025 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/4548c9eafb2b055c155f0411c2f09ce6ad6ee326bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/46c7c4e01559184d5a61a1fcb1373c5bf6a14bf3bin0 -> 1142 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/47b585fc8efb2975198a4794a2bb9ea8db57e578bin0 -> 1030 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/483492b3ba626f4f0c77c21841a92d1b8de41f41bin0 -> 1047 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/51e7ed64e7ce54e4aa56aa5de5339e5a65cab3061
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/52c19ccb302acd2891e5d4f603e1ff43617a2999bin0 -> 7664 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/5a08eef5894e00a58d1cb2a6ff95b57daa8b5ed2bin0 -> 1066 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/60496a70ac884918a0582b59058311721a8b0e2ebin0 -> 1026 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/69253c014b17a7246741acdd8fccbfced65680b9bin0 -> 1025 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/6af29db34ec0851f33adde39292eae79a523400cbin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/70450e01aaac34038ed134d5bb5d8e9502065454bin0 -> 1595 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/706438b3a5497dab120989b1f26f2789b1a1cb96bin0 -> 1403 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/7c7d82f8c184500c1ff8b316d4e513767a16d879bin0 -> 1025 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/7cc83a4b869fcb68f5c30e3d1a062b6b78602d8dbin0 -> 2255 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/7f2c29a98e847ffe21646d3e2289166672c88d1abin0 -> 2085 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/800a437326ee96ac3adfb666d326b2d063f0103fbin0 -> 1031 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/804eb54d67309af89e66e952e755b6059d5f7091bin0 -> 1025 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/80f088d5275c598925a8c25afd4b3b4c4d174c2abin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/82a95f9bff17cf1924dd0b123a646b9e4d26e5a5bin0 -> 3233 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/875e9b19340fbb129ed25c40d3582166766267bdbin0 -> 1025 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/9b072d7ac75bea0e9fe5478099a3dd962f72721bbin0 -> 8457 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/a0705f19f4b281be6fcdd2283bd7551a82d8edd4bin0 -> 2254 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/a1927d30482cc1654e8fba0499f9724f207cd72abin0 -> 1216 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/a2842142a43d2a91b830686ad9c19223231226cbbin0 -> 1067 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/a49810230141a0bf5afb9a1f33e4dfed2955ca37bin0 -> 5104 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/a793e210460a293985f6ef790188a9fb92a1a9ee1
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/ae8884740527cd378965db9843c98727de770e09bin0 -> 1065 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/b82001f17b627d6b756a07d3c2d3f652e6bd2d62bin0 -> 1082 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/b82b2d0f54a12b4acb36c3562feda4efe3050758bin0 -> 1064 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/b9749b1c2d0c425dc1be97b13f972ee9a44cfcabbin0 -> 1030 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/bd5015cee82171ac5097d615cb4f3626f3cf52031
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/c386e02aeae468bd5130a5b99de1b366382a33a7bin0 -> 1096 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/c80bb9d319d7c0a436ee24aa46d1734fbcc3463ebin0 -> 1025 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/cbec151ca6ed723e00fb874b4a0d9ff478f6b21bbin0 -> 2103 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/cd709d9b76a28b0e28d2ef779096066f9f581030bin0 -> 1027 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/cfb0a5bcaa8c4de6f1820bfde5a78a3c0c282f3e1
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/d14bf08ba76e6641f39a58555d07c979c7157bc6bin0 -> 1087 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/d68cbcd904ddb5b55437aa41b452c7ab2e0e84c4bin0 -> 1025 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/d866bde40f86c1a1178ea367118aed39a6a6e086bin0 -> 1133 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/daa6e08a392803f772858633b94159e2e4e0cc42bin0 -> 1295 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/dcaa72e4a5feb858c48f1dba2bd873ce9d278a56bin0 -> 1088 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/dcf505da80812e4be45105b1ba530d11028a20c1bin0 -> 1029 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/ec4e343976a59c139ce33da6a040b1317000afbabin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/ed86ab0a4c39e4b992715581675add1272654dc5bin0 -> 2070 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_ahocorasick/f4205edf785c9e8ed10cf67f22fbad5c1531098cbin0 -> 1026 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/039e60a1ee261f46936205728306da3bbb956a55bin0 -> 1045 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/05021e284d752717e1138e960b33e87f083ad81dbin0 -> 1332 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/074213b09bc134edd6e4db338af6e99042e07afabin0 -> 1089 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/0925b0ebe5718061127a9644b6b7d93980d14e3dbin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/0d0f41eb76931c6a969e3b4307e167ce7cb3c928bin0 -> 1170 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/108dffa4f82791086951cf3861790a989be0d19cbin0 -> 1099 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/12ceecaa3ef02cff7acc62405e6287e8dfcdfa8ebin0 -> 1423 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/13ed262cfca6f60fe738ef6cdfa2b56e5dc2d8dabin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/14078b526ed4ff0aca7cbfc27cfca5229a5ea0efbin0 -> 1025 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/1a48e3105bc7eaf5069c738e29694916a0dd9a05bin0 -> 1422 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/1b33c6dae5a35eee9358136515bbe1ee207a3d49bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/1b4035f28517961b07b43eccda628ca079f2f269bin0 -> 1036 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/21b1e04ce1c6eb7bdf43328e5c47b15fa44d6f4fbin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/232ef539cb5481a1c290a69bccc3cff88b56133bbin0 -> 1728 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/23c63c3e1035ef6568b360ccd14d368754b10b95bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/24ccf941ae8c4b95303a148da73d2348619eab9abin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/2a286cbf9d32f6de497f91438b0f93c831893d06bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/2b5709a78e62b162b13853eb9616bd07547447c2bin0 -> 1251 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/2c48dce4e16ebb7bbeaa65a5cf0803baa3925a06bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/2c8502a8cc05c9877c0292567494678a54ee1e38bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/2cefff96a3039cdbef3c3a6ba41d0b2fe1a24ddebin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/33b543ba66b38ce2c9425c41fd272b50a52f2c3cbin0 -> 1037 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/35ed34b3b9e6b3fa9ad7fd571309b81d6aa625acbin0 -> 1037 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/3676c7c3052ee8bf7202ab9cdd06f678d8c47266bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/3ace63222163540c03cd16910add24236483139dbin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/40225fbb10ed02053853ce61f3561a1c2eaadd8fbin0 -> 1355 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/47ed8baadac2f946a298d232123e4e84684e9564bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/4cafe1fec188a9d9787d45f2ad97e4afa69e2d0ebin0 -> 1681 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/521991a268c2e02c6f7be45c9526cfe88b2e3f7fbin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/530bdb11fe9270a52123f0faeed18c46b5f94fd9bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/542171cce5b48cb8c86a962d6520cb84f0fd6fbebin0 -> 1025 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/5499b8e7401cc066ac1e2f71614795f7bafc40b6bin0 -> 1273 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/54b73015a7a5041d00f84d67d51832d48c2b9907bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/563177d397af2ac5b53619e39e6df61f4f98f223bin0 -> 1040 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/57d2337746f797d3f8f0080f309dbb2bd4e0f9cbbin0 -> 1130 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/59a871d0625a68595b0e676966b003e5d9bb2cf3bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/5bbea5577dd3884eae9bb1e1979f2794d591f250bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/5bc91c208c7b971731b3c02943f98586850d2551bin0 -> 1819 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/5eb7f8d4ad4d94b04f16fb1f26d5e12c8f8bfbd0bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/61b76c1e66d4c4f6954d7e026afbc3f6eaee1d6bbin0 -> 1038 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/68765021cb1305cb14753ce1ffb2e6b0ca98f670bin0 -> 1027 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/68aa130fbb2ffb67d937d0726e6335332039beb2bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/6a5d9322d42293dbbed245169604641ddcc6c736bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/7218671551e49d714af5c9a0363debc41f69b07fbin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/74cc48645729d7afccc86b88ebdc525ec8e8639ebin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/74d536c631e3dfd862ab23cebd0027523f752673bin0 -> 1035 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/75bfb98cd2a35dc1af93c58279ea057d45ea09e6bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/803338ce5f1a96ca01369c8dd4b4ead40b5413cebin0 -> 2377 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/8373dd814b7a7ab13455ec7f5f61c9dba5817060bin0 -> 2067 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/8b3d2f65163ff2351bf9a5bbf7dfbaeace054246bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/8b3fa51f3ea12e0ab1f2e4338f0bbdd167995c98bin0 -> 1123 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/8c2f118da7346b51b3a829af9ea7b43a98ce91f0bin0 -> 1400 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/8dc1dd8e66922ff701c798bbe91d19b37f58495fbin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/8e77a1ae0ef5ee0974856f2a0318b46e98f0e4f9bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/8f2f7f037ede54b9812983536b8a973db7dfe5ecbin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/8fb9128d8833cb0e1b40c92bf43968b8b4bb8b7cbin0 -> 1027 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/8fc6b683859c8a3ca1a2cd09afb65683db6925babin0 -> 2068 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/921441816405adb82a95beb9e829eb2d07364e39bin0 -> 1025 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/92e0eb0d2887706e28f2092373d64be988f2348fbin0 -> 1041 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/92fb55b38af871f214e5487274d61262945e87abbin0 -> 1194 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/960262916af52bd22c72f32983b4158c80d9bc14bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/96d3cd59bac131d83c46fa6d6c6ce0868d83e981bin0 -> 1476 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/977a02add85824845858b8587906157cf5fc1dfebin0 -> 1295 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/9cd8475553e593641897c96d7abd7463f49c2682bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/9d598f7fa3cdf08e373f27caf61c012aae75ce4dbin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/9fa60713c5ae1f3726ae70fd4e8c230c27e10a7ebin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/a7302ca6b5de89a8840072d6bc28184881e7e5c7bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/a8188d5148159ccc511bfc90bf837fa93b6cbf94bin0 -> 1364 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/a8d46b93c9c5bb3a68e57a8699b9db73631c30edbin0 -> 2196 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/aa0a7045de571ac72c4bef04373965d3c062a802bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/ad2dc31bea9499dbc2450df00eac38ddd37d17c4bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/ade86d0ebba9baf5243f184cbb5a4b5cc6d65386bin0 -> 1038 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/b042b35030eb170c6507e14dd6f00a6e1b670612bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/b688eaaf60534a0470b8a153c71dd52f6acde043bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/b78d8c40070c22d7c4dd34b6f56b256a51d60ca6bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/bafbbb41dfbb7cc1be135d34ad282d54d14fb308bin0 -> 1203 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/c227d679049293ede4340c485e8c9035abe25c21bin0 -> 1268 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/c4481c47f49eb89bc871184b747bd351ca128db8bin0 -> 2081 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/c44e56f98bbb7e90638c8813540b389f0b583a61bin0 -> 1758 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/c59c6050c23fd067f7863a1849278b9f399d6332bin0 -> 1035 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/cb4c0a2cb620f140280597591ece04e5fd852dc7bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/ce9047b351cd0a5eaffcbb487b64cab99a19522ebin0 -> 1938 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/cf6301c7730c893724a36740fe9bbf46ac5e002ebin0 -> 1165 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/d0b0b56e3a3b9092ab75b212aa07777c48013050bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/d27f235a75d3347f7554ad049009492571352d18bin0 -> 1036 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/d35119bcdc064dfd438dd5dc943a7d6e64b118bcbin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/d45bf39f094b41cb64954cb70c9266a4fe02dc17bin0 -> 1289 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/d5a267a9438f0bddf91a25c6606d8debf4672d76bin0 -> 1035 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/d5c613293379f84fd9d30da74953c74336b3efc7bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/dd83ecad869aafeec00dae649b93643bd85549fcbin0 -> 2069 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/df36cc5d101b59b8e577a8260dbc22e99749dc7bbin0 -> 1041 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/e0b35272e42e26f2396fb30f2601afebeec4760bbin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/e3d59cfa962fbddcb2d2bd8f834c05f66a7c6336bin0 -> 1280 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/e9ae65ef89f69cde2b8e5b3e2ce14ac98b2c2289bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/ece0c9b5f1e118ad7960ee974fbc634b44b830e1bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/ef6a236812a8235565a4c606ea2c5a9341e4aa41bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/efb7a29db7ce24f71b969ee68eb0af750afb2b4cbin0 -> 1423 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/f1bb760d7ecb5d34e982e43eea266a3ca22778a4bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/f24cf8ce6cf0a9e00e9fcef913843d439792379cbin0 -> 1223 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/f415309e92385cbd8c7d1c6a9a7505e933cb2acfbin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/f4d7ba52332b71166ca952780db341c5645f04b3bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/f5f68d29ff553b4e63a3f0bb69e4c940bc46c291bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/f9cce96c161f401d73f04ef031404a885eb5da37bin0 -> 1024 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/ff72929db2b1fdacd24b1aed103bb307bbac7d7fbin0 -> 1263 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_patricia/ff82aaaf9375f24492e1bc709bf1518b827fc83dbin0 -> 1219 bytes
-rw-r--r--fuzz/fuzz_alg_bins.cpp92
-rw-r--r--fuzz/fuzz_alg_hll.cpp46
-rw-r--r--fuzz/fuzz_alg_hw_rsi_outliers_da.cpp98
-rw-r--r--fuzz/fuzz_alg_jitter.cpp38
-rw-r--r--fuzz/fuzz_alg_ses_des.cpp52
-rw-r--r--fuzz/fuzz_ds_ahocorasick.cpp124
-rw-r--r--fuzz/fuzz_ds_patricia.cpp161
-rw-r--r--src/include/ndpi_api.h5
-rw-r--r--src/include/ndpi_typedefs.h2
-rw-r--r--src/lib/ndpi_analyze.c84
-rw-r--r--src/lib/ndpi_main.c3
-rw-r--r--src/lib/third_party/include/ahocorasick.h8
-rw-r--r--src/lib/third_party/src/ahocorasick.c15
-rw-r--r--src/lib/third_party/src/hll/MurmurHash3.c8
-rw-r--r--src/lib/third_party/src/hll/hll.c7
359 files changed, 897 insertions, 28 deletions
diff --git a/.github/workflows/cifuzz.yml b/.github/workflows/cifuzz.yml
index 62f0d417c..2285fad3d 100644
--- a/.github/workflows/cifuzz.yml
+++ b/.github/workflows/cifuzz.yml
@@ -18,7 +18,7 @@ jobs:
uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
with:
oss-fuzz-project-name: 'ndpi'
- fuzz-seconds: 1200
+ fuzz-seconds: 1500
dry-run: false
sanitizer: ${{ matrix.sanitizer }}
- name: Check Crash (fails when a crash is detected)
diff --git a/.gitignore b/.gitignore
index 217610788..ae45fe89b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -54,9 +54,24 @@
/fuzz/fuzz_process_packet
/fuzz/fuzz_ndpi_reader_alloc_fail
/fuzz/fuzz_quic_get_crypto_data
+/fuzz/fuzz_alg_bins
+/fuzz/fuzz_alg_hll
+/fuzz/fuzz_alg_hw_rsi_outliers_da
+/fuzz/fuzz_alg_jitter
+/fuzz/fuzz_alg_ses_des
+/fuzz/fuzz_config
+/fuzz/fuzz_ds_patricia
+/fuzz/fuzz_ds_ahocorasick
/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
+/fuzz/fuzz_alg_ses_des_seed_corpus.zip
+/fuzz/fuzz_alg_bins_seed_corpus.zip
+/fuzz/fuzz_alg_hll_seed_corpus.zip
+/fuzz/fuzz_alg_jitter_seed_corpus.zip
+/fuzz/fuzz_alg_hw_rsi_outliers_da_seed_corpus.zip
+/fuzz/fuzz_ds_patricia_seed_corpus.zip
+/fuzz/fuzz_ds_ahocorasick_seed_corpus.zip
/influxdb/Makefile
/install-sh
/libndpi.pc
diff --git a/fuzz/Makefile.am b/fuzz/Makefile.am
index 9ee8571c8..c80818324 100644
--- a/fuzz/Makefile.am
+++ b/fuzz/Makefile.am
@@ -1,4 +1,8 @@
bin_PROGRAMS = fuzz_process_packet fuzz_ndpi_reader fuzz_ndpi_reader_alloc_fail fuzz_quic_get_crypto_data fuzz_config
+#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
fuzz_process_packet_SOURCES = fuzz_process_packet.c fuzz_common_code.c
fuzz_process_packet_CFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS)
@@ -67,6 +71,112 @@ 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_alg_bins_SOURCES = fuzz_alg_bins.cpp fuzz_common_code.c
+fuzz_alg_bins_CXXFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS) -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -DENABLE_MEM_ALLOC_FAILURES
+fuzz_alg_bins_CFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS) -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -DENABLE_MEM_ALLOC_FAILURES
+fuzz_alg_bins_LDADD = ../src/lib/libndpi.a
+fuzz_alg_bins_LDFLAGS = $(ADDITIONAL_LIBS) $(LIBS)
+if HAS_FUZZLDFLAGS
+fuzz_alg_bins_CXXFLAGS += $(LIB_FUZZING_ENGINE)
+fuzz_alg_bins_CFLAGS += $(LIB_FUZZING_ENGINE)
+fuzz_alg_bins_LDFLAGS += $(LIB_FUZZING_ENGINE)
+endif
+# force usage of CXX for linker
+fuzz_alg_bins_LINK=$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXX) @NDPI_CFLAGS@ $(AM_CXXFLAGS) $(CXXFLAGS) \
+ $(fuzz_alg_bins_LDFLAGS) @NDPI_LDFLAGS@ $(LDFLAGS) -o $@
+
+fuzz_alg_hll_SOURCES = fuzz_alg_hll.cpp fuzz_common_code.c
+fuzz_alg_hll_CXXFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS) -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -DENABLE_MEM_ALLOC_FAILURES
+fuzz_alg_hll_CFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS) -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -DENABLE_MEM_ALLOC_FAILURES
+fuzz_alg_hll_LDADD = ../src/lib/libndpi.a
+fuzz_alg_hll_LDFLAGS = $(ADDITIONAL_LIBS) $(LIBS)
+if HAS_FUZZLDFLAGS
+fuzz_alg_hll_CXXFLAGS += $(LIB_FUZZING_ENGINE)
+fuzz_alg_hll_CFLAGS += $(LIB_FUZZING_ENGINE)
+fuzz_alg_hll_LDFLAGS += $(LIB_FUZZING_ENGINE)
+endif
+# force usage of CXX for linker
+fuzz_alg_hll_LINK=$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXX) @NDPI_CFLAGS@ $(AM_CXXFLAGS) $(CXXFLAGS) \
+ $(fuzz_alg_hll_LDFLAGS) @NDPI_LDFLAGS@ $(LDFLAGS) -o $@
+
+fuzz_alg_hw_rsi_outliers_da_SOURCES = fuzz_alg_hw_rsi_outliers_da.cpp fuzz_common_code.c
+fuzz_alg_hw_rsi_outliers_da_CXXFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS) -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -DENABLE_MEM_ALLOC_FAILURES
+fuzz_alg_hw_rsi_outliers_da_CFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS) -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -DENABLE_MEM_ALLOC_FAILURES
+fuzz_alg_hw_rsi_outliers_da_LDADD = ../src/lib/libndpi.a
+fuzz_alg_hw_rsi_outliers_da_LDFLAGS = $(ADDITIONAL_LIBS) $(LIBS)
+if HAS_FUZZLDFLAGS
+fuzz_alg_hw_rsi_outliers_da_CXXFLAGS += $(LIB_FUZZING_ENGINE)
+fuzz_alg_hw_rsi_outliers_da_CFLAGS += $(LIB_FUZZING_ENGINE)
+fuzz_alg_hw_rsi_outliers_da_LDFLAGS += $(LIB_FUZZING_ENGINE)
+endif
+# force usage of CXX for linker
+fuzz_alg_hw_rsi_outliers_da_LINK=$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXX) @NDPI_CFLAGS@ $(AM_CXXFLAGS) $(CXXFLAGS) \
+ $(fuzz_alg_hw_rsi_outliers_da_LDFLAGS) @NDPI_LDFLAGS@ $(LDFLAGS) -o $@
+
+fuzz_alg_jitter_SOURCES = fuzz_alg_jitter.cpp fuzz_common_code.c
+fuzz_alg_jitter_CXXFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS) -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -DENABLE_MEM_ALLOC_FAILURES
+fuzz_alg_jitter_CFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS) -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -DENABLE_MEM_ALLOC_FAILURES
+fuzz_alg_jitter_LDADD = ../src/lib/libndpi.a
+fuzz_alg_jitter_LDFLAGS = $(ADDITIONAL_LIBS) $(LIBS)
+if HAS_FUZZLDFLAGS
+fuzz_alg_jitter_CXXFLAGS += $(LIB_FUZZING_ENGINE)
+fuzz_alg_jitter_CFLAGS += $(LIB_FUZZING_ENGINE)
+fuzz_alg_jitter_LDFLAGS += $(LIB_FUZZING_ENGINE)
+endif
+# force usage of CXX for linker
+fuzz_alg_jitter_LINK=$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXX) @NDPI_CFLAGS@ $(AM_CXXFLAGS) $(CXXFLAGS) \
+ $(fuzz_alg_jitter_LDFLAGS) @NDPI_LDFLAGS@ $(LDFLAGS) -o $@
+
+fuzz_alg_ses_des_SOURCES = fuzz_alg_ses_des.cpp fuzz_common_code.c
+fuzz_alg_ses_des_CXXFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS) -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -DENABLE_MEM_ALLOC_FAILURES
+fuzz_alg_ses_des_CFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS) -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -DENABLE_MEM_ALLOC_FAILURES
+fuzz_alg_ses_des_LDADD = ../src/lib/libndpi.a
+fuzz_alg_ses_des_LDFLAGS = $(ADDITIONAL_LIBS) $(LIBS)
+if HAS_FUZZLDFLAGS
+fuzz_alg_ses_des_CXXFLAGS += $(LIB_FUZZING_ENGINE)
+fuzz_alg_ses_des_CFLAGS += $(LIB_FUZZING_ENGINE)
+fuzz_alg_ses_des_LDFLAGS += $(LIB_FUZZING_ENGINE)
+endif
+# force usage of CXX for linker
+fuzz_alg_ses_des_LINK=$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXX) @NDPI_CFLAGS@ $(AM_CXXFLAGS) $(CXXFLAGS) \
+ $(fuzz_alg_ses_des_LDFLAGS) @NDPI_LDFLAGS@ $(LDFLAGS) -o $@
+
+fuzz_ds_patricia_SOURCES = fuzz_ds_patricia.cpp fuzz_common_code.c
+fuzz_ds_patricia_CXXFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS) -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -DENABLE_MEM_ALLOC_FAILURES
+fuzz_ds_patricia_CFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS) -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -DENABLE_MEM_ALLOC_FAILURES
+fuzz_ds_patricia_LDADD = ../src/lib/libndpi.a
+fuzz_ds_patricia_LDFLAGS = $(ADDITIONAL_LIBS) $(LIBS)
+if HAS_FUZZLDFLAGS
+fuzz_ds_patricia_CXXFLAGS += $(LIB_FUZZING_ENGINE)
+fuzz_ds_patricia_CFLAGS += $(LIB_FUZZING_ENGINE)
+fuzz_ds_patricia_LDFLAGS += $(LIB_FUZZING_ENGINE)
+endif
+# force usage of CXX for linker
+fuzz_ds_patricia_LINK=$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXX) @NDPI_CFLAGS@ $(AM_CXXFLAGS) $(CXXFLAGS) \
+ $(fuzz_ds_patricia_LDFLAGS) @NDPI_LDFLAGS@ $(LDFLAGS) -o $@
+
+fuzz_ds_ahocorasick_SOURCES = fuzz_ds_ahocorasick.cpp fuzz_common_code.c
+fuzz_ds_ahocorasick_CXXFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS) -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -DENABLE_MEM_ALLOC_FAILURES
+fuzz_ds_ahocorasick_CFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS) -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -DENABLE_MEM_ALLOC_FAILURES
+fuzz_ds_ahocorasick_LDADD = ../src/lib/libndpi.a
+fuzz_ds_ahocorasick_LDFLAGS = $(ADDITIONAL_LIBS) $(LIBS)
+if HAS_FUZZLDFLAGS
+fuzz_ds_ahocorasick_CXXFLAGS += $(LIB_FUZZING_ENGINE)
+fuzz_ds_ahocorasick_CFLAGS += $(LIB_FUZZING_ENGINE)
+fuzz_ds_ahocorasick_LDFLAGS += $(LIB_FUZZING_ENGINE)
+endif
+# force usage of CXX for linker
+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 $@
+
+
# required for Google oss-fuzz
# see https://github.com/google/oss-fuzz/tree/master/projects/ndpi
testpcaps := $(wildcard ../tests/pcap/*.pcap*)
@@ -82,7 +192,42 @@ files_corpus_fuzz_quic_get_crypto_data := $(wildcard corpus/fuzz_quic_get_crypt
fuzz_quic_get_crypto_data_seed_corpus.zip: $(files_corpus_fuzz_quic_get_crypto_data)
zip -j fuzz_quic_get_crypto_data_seed_corpus.zip $(files_corpus_fuzz_quic_get_crypto_data)
-corpus: fuzz_ndpi_reader_seed_corpus.zip fuzz_ndpi_reader_alloc_fail_seed_corpus.zip fuzz_quic_get_crypto_data_seed_corpus.zip
+files_corpus_fuzz_ds_patricia := $(wildcard corpus/fuzz_ds_patricia/*)
+
+fuzz_ds_patricia_seed_corpus.zip: $(files_corpus_fuzz_ds_patricia)
+ zip -j fuzz_ds_patricia_seed_corpus.zip $(files_corpus_fuzz_ds_patricia)
+
+files_corpus_fuzz_ds_ahocorasick := $(wildcard corpus/fuzz_ds_ahocorasick/*)
+
+fuzz_ds_ahocorasick_seed_corpus.zip: $(files_corpus_fuzz_ds_ahocorasick)
+ zip -j fuzz_ds_ahocorasick_seed_corpus.zip $(files_corpus_fuzz_ds_ahocorasick)
+
+files_corpus_fuzz_alg_ses_des := $(wildcard corpus/fuzz_alg_ses_des/*)
+
+fuzz_alg_ses_des_seed_corpus.zip: $(files_corpus_fuzz_alg_ses_des)
+ zip -j fuzz_alg_ses_des_seed_corpus.zip $(files_corpus_fuzz_alg_ses_des)
+
+files_corpus_fuzz_alg_hw_rsi_outliers_da := $(wildcard corpus/fuzz_alg_hw_rsi_outliers_da/*)
+
+fuzz_alg_hw_rsi_outliers_da_seed_corpus.zip: $(files_corpus_fuzz_alg_hw_rsi_outliers_da)
+ zip -j fuzz_alg_hw_rsi_outliers_da_seed_corpus.zip $(files_corpus_fuzz_alg_hw_rsi_outliers_da)
+
+files_corpus_fuzz_alg_bins := $(wildcard corpus/fuzz_alg_bins/*)
+
+fuzz_alg_bins_seed_corpus.zip: $(files_corpus_fuzz_alg_bins)
+ zip -j fuzz_alg_bins_seed_corpus.zip $(files_corpus_fuzz_alg_bins)
+
+files_corpus_fuzz_alg_hll := $(wildcard corpus/fuzz_alg_hll/*)
+
+fuzz_alg_hll_seed_corpus.zip: $(files_corpus_fuzz_alg_hll)
+ zip -j fuzz_alg_hll_seed_corpus.zip $(files_corpus_fuzz_alg_hll)
+
+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_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
distdir:
find . -type d | xargs -I'{}' mkdir -p '$(distdir)/{}'
@@ -90,6 +235,13 @@ distdir:
-o -name '*.am' \
-o -name '*.h' \
-o -name '*.cpp' \
- -o -name '*.bin' | xargs -I'{}' cp '{}' '$(distdir)/{}'
+ -o -path './corpus/fuzz_quic_get_crypto_data/*' \
+ -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_patricia/*' | xargs -I'{}' cp -r '{}' '$(distdir)/{}'
all: corpus
diff --git a/fuzz/corpus/fuzz_alg_bins/04aef3ac068dd9f8fceb6c52bddf17c08b2a6f14 b/fuzz/corpus/fuzz_alg_bins/04aef3ac068dd9f8fceb6c52bddf17c08b2a6f14
new file mode 100644
index 000000000..0ab5cd0cb
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_bins/04aef3ac068dd9f8fceb6c52bddf17c08b2a6f14
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_bins/07f5c4450bc1f59ef1e69956da5c40932663c871 b/fuzz/corpus/fuzz_alg_bins/07f5c4450bc1f59ef1e69956da5c40932663c871
new file mode 100644
index 000000000..5aecbc507
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_bins/07f5c4450bc1f59ef1e69956da5c40932663c871
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_bins/0897b66c9b17d2b58f618aa9e8a9ec8f3af482eb b/fuzz/corpus/fuzz_alg_bins/0897b66c9b17d2b58f618aa9e8a9ec8f3af482eb
new file mode 100644
index 000000000..c4517097f
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_bins/0897b66c9b17d2b58f618aa9e8a9ec8f3af482eb
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_bins/16176acf04fda57834be5c8910fccea65a975d7a b/fuzz/corpus/fuzz_alg_bins/16176acf04fda57834be5c8910fccea65a975d7a
new file mode 100644
index 000000000..a07fd686d
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_bins/16176acf04fda57834be5c8910fccea65a975d7a
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_bins/171f090f5642794f3f319e22d6fbad9c239a6839 b/fuzz/corpus/fuzz_alg_bins/171f090f5642794f3f319e22d6fbad9c239a6839
new file mode 100644
index 000000000..684871f9c
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_bins/171f090f5642794f3f319e22d6fbad9c239a6839
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_bins/181b1bb3f2110d84a15fb2cd5b484541e3e141fa b/fuzz/corpus/fuzz_alg_bins/181b1bb3f2110d84a15fb2cd5b484541e3e141fa
new file mode 100644
index 000000000..46070d9b5
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_bins/181b1bb3f2110d84a15fb2cd5b484541e3e141fa
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_bins/250bc6897c6b0621bc5fd8728bd06725fb1028fb b/fuzz/corpus/fuzz_alg_bins/250bc6897c6b0621bc5fd8728bd06725fb1028fb
new file mode 100644
index 000000000..2ce1f4254
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_bins/250bc6897c6b0621bc5fd8728bd06725fb1028fb
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_bins/2a0245614746aa703c7bb437d8b0d891c4ba24e5 b/fuzz/corpus/fuzz_alg_bins/2a0245614746aa703c7bb437d8b0d891c4ba24e5
new file mode 100644
index 000000000..b82ec8ffb
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_bins/2a0245614746aa703c7bb437d8b0d891c4ba24e5
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_bins/5084dd963df4aaa93d944a08154626525cb17956 b/fuzz/corpus/fuzz_alg_bins/5084dd963df4aaa93d944a08154626525cb17956
new file mode 100644
index 000000000..53c01b7cd
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_bins/5084dd963df4aaa93d944a08154626525cb17956
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_bins/57b7d05a9afa1f161022eab5a4446ec18a260a05 b/fuzz/corpus/fuzz_alg_bins/57b7d05a9afa1f161022eab5a4446ec18a260a05
new file mode 100644
index 000000000..5a0834c02
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_bins/57b7d05a9afa1f161022eab5a4446ec18a260a05
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_bins/6010cdccbe6c0051150ad352d48b623a75e72f9d b/fuzz/corpus/fuzz_alg_bins/6010cdccbe6c0051150ad352d48b623a75e72f9d
new file mode 100644
index 000000000..3108fc452
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_bins/6010cdccbe6c0051150ad352d48b623a75e72f9d
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_bins/605d323697d62b27aef133ef38a152b53e16de7a b/fuzz/corpus/fuzz_alg_bins/605d323697d62b27aef133ef38a152b53e16de7a
new file mode 100644
index 000000000..dbd156c0f
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_bins/605d323697d62b27aef133ef38a152b53e16de7a
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_bins/6531edab6d1a10a02e75a8054f533ba1c123b1bb b/fuzz/corpus/fuzz_alg_bins/6531edab6d1a10a02e75a8054f533ba1c123b1bb
new file mode 100644
index 000000000..dcc700711
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_bins/6531edab6d1a10a02e75a8054f533ba1c123b1bb
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_bins/89a9a706265902ba11dbb21359eb667b55fc4c63 b/fuzz/corpus/fuzz_alg_bins/89a9a706265902ba11dbb21359eb667b55fc4c63
new file mode 100644
index 000000000..f4ecea869
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_bins/89a9a706265902ba11dbb21359eb667b55fc4c63
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_bins/949d5f11ee916fdacd8fc1266339dbf10921572c b/fuzz/corpus/fuzz_alg_bins/949d5f11ee916fdacd8fc1266339dbf10921572c
new file mode 100644
index 000000000..e9be4bc98
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_bins/949d5f11ee916fdacd8fc1266339dbf10921572c
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_bins/98a6ac61230b54b1680ab6f6c63780c327d5814e b/fuzz/corpus/fuzz_alg_bins/98a6ac61230b54b1680ab6f6c63780c327d5814e
new file mode 100644
index 000000000..1500e4ed8
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_bins/98a6ac61230b54b1680ab6f6c63780c327d5814e
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_bins/b3ee96767d3269734127b707b4a26bdb160bef91 b/fuzz/corpus/fuzz_alg_bins/b3ee96767d3269734127b707b4a26bdb160bef91
new file mode 100644
index 000000000..b1b1dda07
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_bins/b3ee96767d3269734127b707b4a26bdb160bef91
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_bins/b6da5ee0a15a36153ab9c7adb53dea8a4e991065 b/fuzz/corpus/fuzz_alg_bins/b6da5ee0a15a36153ab9c7adb53dea8a4e991065
new file mode 100644
index 000000000..4c03cd3ca
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_bins/b6da5ee0a15a36153ab9c7adb53dea8a4e991065
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_bins/c5c58b0d39325b36c8ee0ec3a1b755b5c1b1433a b/fuzz/corpus/fuzz_alg_bins/c5c58b0d39325b36c8ee0ec3a1b755b5c1b1433a
new file mode 100644
index 000000000..063fd198b
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_bins/c5c58b0d39325b36c8ee0ec3a1b755b5c1b1433a
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_bins/caaa27a7bb14ca0127fcdf0dfa73324357c2c1c9 b/fuzz/corpus/fuzz_alg_bins/caaa27a7bb14ca0127fcdf0dfa73324357c2c1c9
new file mode 100644
index 000000000..fae8bf683
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_bins/caaa27a7bb14ca0127fcdf0dfa73324357c2c1c9
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_bins/d418998b0479e9f3f50dae60cd58f13304aa4647 b/fuzz/corpus/fuzz_alg_bins/d418998b0479e9f3f50dae60cd58f13304aa4647
new file mode 100644
index 000000000..26f24944d
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_bins/d418998b0479e9f3f50dae60cd58f13304aa4647
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_bins/d81fdc6f2115362d0c33e5621d29a67b94c5238b b/fuzz/corpus/fuzz_alg_bins/d81fdc6f2115362d0c33e5621d29a67b94c5238b
new file mode 100644
index 000000000..64e8eb7af
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_bins/d81fdc6f2115362d0c33e5621d29a67b94c5238b
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_bins/da05f7ad93193548ce3fe3866c742fa3216c91c4 b/fuzz/corpus/fuzz_alg_bins/da05f7ad93193548ce3fe3866c742fa3216c91c4
new file mode 100644
index 000000000..11f32baad
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_bins/da05f7ad93193548ce3fe3866c742fa3216c91c4
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_bins/dfdc12c392c55191512a98bdbed00325d6a805f1 b/fuzz/corpus/fuzz_alg_bins/dfdc12c392c55191512a98bdbed00325d6a805f1
new file mode 100644
index 000000000..8a93e01fb
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_bins/dfdc12c392c55191512a98bdbed00325d6a805f1
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_bins/e45dc83c52f7056272bb2be4e89cc0e33539a694 b/fuzz/corpus/fuzz_alg_bins/e45dc83c52f7056272bb2be4e89cc0e33539a694
new file mode 100644
index 000000000..6ac9342c2
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_bins/e45dc83c52f7056272bb2be4e89cc0e33539a694
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/00c5ce0c266f5fa909dee67399fba8addafa2fa2 b/fuzz/corpus/fuzz_alg_hll/00c5ce0c266f5fa909dee67399fba8addafa2fa2
new file mode 100644
index 000000000..718d310ba
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/00c5ce0c266f5fa909dee67399fba8addafa2fa2
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/033f20c7405b6d98f1ee5f76294f1dcb081f96be b/fuzz/corpus/fuzz_alg_hll/033f20c7405b6d98f1ee5f76294f1dcb081f96be
new file mode 100644
index 000000000..c7a603bd7
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/033f20c7405b6d98f1ee5f76294f1dcb081f96be
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/11c1b40491217270c6f11eeedf8277d39a585b4a b/fuzz/corpus/fuzz_alg_hll/11c1b40491217270c6f11eeedf8277d39a585b4a
new file mode 100644
index 000000000..38fad8fd1
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/11c1b40491217270c6f11eeedf8277d39a585b4a
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/136cce4f84acc9a5ba48e74bb9ac8d7954cc20c1 b/fuzz/corpus/fuzz_alg_hll/136cce4f84acc9a5ba48e74bb9ac8d7954cc20c1
new file mode 100644
index 000000000..344704adb
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/136cce4f84acc9a5ba48e74bb9ac8d7954cc20c1
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/1c026fec4502d65c08cbafb06f1d5cb22543f476 b/fuzz/corpus/fuzz_alg_hll/1c026fec4502d65c08cbafb06f1d5cb22543f476
new file mode 100644
index 000000000..feab5ceae
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/1c026fec4502d65c08cbafb06f1d5cb22543f476
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/30519b1f6ed60867cb94efbc045196e89ab14a2e b/fuzz/corpus/fuzz_alg_hll/30519b1f6ed60867cb94efbc045196e89ab14a2e
new file mode 100644
index 000000000..476c8fd79
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/30519b1f6ed60867cb94efbc045196e89ab14a2e
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/30b0c905db3cadc03e90ca3987da502d23b14d41 b/fuzz/corpus/fuzz_alg_hll/30b0c905db3cadc03e90ca3987da502d23b14d41
new file mode 100644
index 000000000..d39b324dd
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/30b0c905db3cadc03e90ca3987da502d23b14d41
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/4824e8aff6d92f6adeea67e0b911bee6a43b6b43 b/fuzz/corpus/fuzz_alg_hll/4824e8aff6d92f6adeea67e0b911bee6a43b6b43
new file mode 100644
index 000000000..3525eac2c
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/4824e8aff6d92f6adeea67e0b911bee6a43b6b43
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/5739b14d854fa7a04dc5fb034c90fef1507b6aae b/fuzz/corpus/fuzz_alg_hll/5739b14d854fa7a04dc5fb034c90fef1507b6aae
new file mode 100644
index 000000000..3efb3c2bd
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/5739b14d854fa7a04dc5fb034c90fef1507b6aae
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/57be26b5725a893e64a4a7c0cdca91195a09f28a b/fuzz/corpus/fuzz_alg_hll/57be26b5725a893e64a4a7c0cdca91195a09f28a
new file mode 100644
index 000000000..d7c630ed7
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/57be26b5725a893e64a4a7c0cdca91195a09f28a
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/5929408882e5b59457c87c7d2f474e7807c2ff01 b/fuzz/corpus/fuzz_alg_hll/5929408882e5b59457c87c7d2f474e7807c2ff01
new file mode 100644
index 000000000..27912e5f1
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/5929408882e5b59457c87c7d2f474e7807c2ff01
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/5db48bac7956375628050868c62b845304fe81b1 b/fuzz/corpus/fuzz_alg_hll/5db48bac7956375628050868c62b845304fe81b1
new file mode 100644
index 000000000..3579a6bee
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/5db48bac7956375628050868c62b845304fe81b1
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/650dfb00b580e2f5384f9ecdd481fc37164ff29f b/fuzz/corpus/fuzz_alg_hll/650dfb00b580e2f5384f9ecdd481fc37164ff29f
new file mode 100644
index 000000000..2ed6c14d6
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/650dfb00b580e2f5384f9ecdd481fc37164ff29f
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/7478ad7c1a51d7780c8b9f915ac719d611435c0c b/fuzz/corpus/fuzz_alg_hll/7478ad7c1a51d7780c8b9f915ac719d611435c0c
new file mode 100644
index 000000000..6bf725a27
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/7478ad7c1a51d7780c8b9f915ac719d611435c0c
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/7ad956d80f0eee90b85144465ed0e0a9e2a7f4b2 b/fuzz/corpus/fuzz_alg_hll/7ad956d80f0eee90b85144465ed0e0a9e2a7f4b2
new file mode 100644
index 000000000..9165dea9b
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/7ad956d80f0eee90b85144465ed0e0a9e2a7f4b2
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/8b1cb24c58fb2b39ab76a07fc07660a0b2a5fda4 b/fuzz/corpus/fuzz_alg_hll/8b1cb24c58fb2b39ab76a07fc07660a0b2a5fda4
new file mode 100644
index 000000000..450e65982
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/8b1cb24c58fb2b39ab76a07fc07660a0b2a5fda4
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/8e4ea2e6eef7046813fa1390cfc8fb21106266b8 b/fuzz/corpus/fuzz_alg_hll/8e4ea2e6eef7046813fa1390cfc8fb21106266b8
new file mode 100644
index 000000000..3ed2a879f
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/8e4ea2e6eef7046813fa1390cfc8fb21106266b8
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/97554293ea90e26156f5a2c8901cac3acbc743a5 b/fuzz/corpus/fuzz_alg_hll/97554293ea90e26156f5a2c8901cac3acbc743a5
new file mode 100644
index 000000000..bb0d31f1b
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/97554293ea90e26156f5a2c8901cac3acbc743a5
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/99721df2d01460b4c7de6cd9ce2e4402a289ec93 b/fuzz/corpus/fuzz_alg_hll/99721df2d01460b4c7de6cd9ce2e4402a289ec93
new file mode 100644
index 000000000..932c76406
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/99721df2d01460b4c7de6cd9ce2e4402a289ec93
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/a050e8c6e4c9e9f0c1220130a95be4a31b2ab3c5 b/fuzz/corpus/fuzz_alg_hll/a050e8c6e4c9e9f0c1220130a95be4a31b2ab3c5
new file mode 100644
index 000000000..322c1d432
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/a050e8c6e4c9e9f0c1220130a95be4a31b2ab3c5
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/a0d3638e17629eb52582aa825cc44e6d9c7b0c6a b/fuzz/corpus/fuzz_alg_hll/a0d3638e17629eb52582aa825cc44e6d9c7b0c6a
new file mode 100644
index 000000000..2e2548702
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/a0d3638e17629eb52582aa825cc44e6d9c7b0c6a
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/be54d0450acad7462c8c1520d7eaa556a8cd9458 b/fuzz/corpus/fuzz_alg_hll/be54d0450acad7462c8c1520d7eaa556a8cd9458
new file mode 100644
index 000000000..c14d5a782
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/be54d0450acad7462c8c1520d7eaa556a8cd9458
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/bf620e4fedfc91c348b9003acc355e16794b2833 b/fuzz/corpus/fuzz_alg_hll/bf620e4fedfc91c348b9003acc355e16794b2833
new file mode 100644
index 000000000..6fcb29ecd
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/bf620e4fedfc91c348b9003acc355e16794b2833
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/c6d2eabc9b7bc05be31ba43729c49ee34d40f9b0 b/fuzz/corpus/fuzz_alg_hll/c6d2eabc9b7bc05be31ba43729c49ee34d40f9b0
new file mode 100644
index 000000000..ebcedd82f
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/c6d2eabc9b7bc05be31ba43729c49ee34d40f9b0
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/c959731a02ddac2c0e5d73f95e7e2f19699a1141 b/fuzz/corpus/fuzz_alg_hll/c959731a02ddac2c0e5d73f95e7e2f19699a1141
new file mode 100644
index 000000000..7903d7e7d
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/c959731a02ddac2c0e5d73f95e7e2f19699a1141
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/cf63f099a31566f8b89ecf9ea9ce2af79bd3d2f2 b/fuzz/corpus/fuzz_alg_hll/cf63f099a31566f8b89ecf9ea9ce2af79bd3d2f2
new file mode 100644
index 000000000..ea6974933
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/cf63f099a31566f8b89ecf9ea9ce2af79bd3d2f2
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/d66d4cfeb9d523fc98f8004b656432d85d70561f b/fuzz/corpus/fuzz_alg_hll/d66d4cfeb9d523fc98f8004b656432d85d70561f
new file mode 100644
index 000000000..23c123d6e
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/d66d4cfeb9d523fc98f8004b656432d85d70561f
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/db59ec014080a45b16ebd33b461c3c66e2670b36 b/fuzz/corpus/fuzz_alg_hll/db59ec014080a45b16ebd33b461c3c66e2670b36
new file mode 100644
index 000000000..8a780b961
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/db59ec014080a45b16ebd33b461c3c66e2670b36
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/dcf088a05d3aa301cc351fdc0a0227c092aecb0d b/fuzz/corpus/fuzz_alg_hll/dcf088a05d3aa301cc351fdc0a0227c092aecb0d
new file mode 100644
index 000000000..b1784429a
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/dcf088a05d3aa301cc351fdc0a0227c092aecb0d
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/de77de38e86ab70adfe2885248392fcb8d468fe7 b/fuzz/corpus/fuzz_alg_hll/de77de38e86ab70adfe2885248392fcb8d468fe7
new file mode 100644
index 000000000..cb6f33d14
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/de77de38e86ab70adfe2885248392fcb8d468fe7
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/dea5fdae1469fc19333192846c58fed1cc9f53c0 b/fuzz/corpus/fuzz_alg_hll/dea5fdae1469fc19333192846c58fed1cc9f53c0
new file mode 100644
index 000000000..e9103a851
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/dea5fdae1469fc19333192846c58fed1cc9f53c0
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/e087159934c116bddeff3f07d290f7cf16d8ea9b b/fuzz/corpus/fuzz_alg_hll/e087159934c116bddeff3f07d290f7cf16d8ea9b
new file mode 100644
index 000000000..cea0e7f5e
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/e087159934c116bddeff3f07d290f7cf16d8ea9b
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/e4fcaac9ebcfd36edfb282e9b81a51ce46638103 b/fuzz/corpus/fuzz_alg_hll/e4fcaac9ebcfd36edfb282e9b81a51ce46638103
new file mode 100644
index 000000000..480726491
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/e4fcaac9ebcfd36edfb282e9b81a51ce46638103
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/eae5ae0f05ae2c77b0ead34d42be05982d74f008 b/fuzz/corpus/fuzz_alg_hll/eae5ae0f05ae2c77b0ead34d42be05982d74f008
new file mode 100644
index 000000000..5b8cd6b61
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/eae5ae0f05ae2c77b0ead34d42be05982d74f008
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hll/ebde88ae2313b116caeb32f35965a9d13ea69b8c b/fuzz/corpus/fuzz_alg_hll/ebde88ae2313b116caeb32f35965a9d13ea69b8c
new file mode 100644
index 000000000..c3debacab
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hll/ebde88ae2313b116caeb32f35965a9d13ea69b8c
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/068a7079ad6069fabdeb42269ccd368c37b904bb b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/068a7079ad6069fabdeb42269ccd368c37b904bb
new file mode 100644
index 000000000..74e5cca18
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/068a7079ad6069fabdeb42269ccd368c37b904bb
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/172f5405b4d2548a578130c85458bd37f347c02a b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/172f5405b4d2548a578130c85458bd37f347c02a
new file mode 100644
index 000000000..8b5fb324b
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/172f5405b4d2548a578130c85458bd37f347c02a
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/29927946bbb09dcff4802d78c4c1ed17de74e35c b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/29927946bbb09dcff4802d78c4c1ed17de74e35c
new file mode 100644
index 000000000..27d001667
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/29927946bbb09dcff4802d78c4c1ed17de74e35c
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/305c5b5b341d5b53ab7eabb5d6e29d7e5834701a b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/305c5b5b341d5b53ab7eabb5d6e29d7e5834701a
new file mode 100644
index 000000000..ed0f1c0e6
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/305c5b5b341d5b53ab7eabb5d6e29d7e5834701a
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/37d90f50c56d9f7b111cec169f5ab9bfb4d6c265 b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/37d90f50c56d9f7b111cec169f5ab9bfb4d6c265
new file mode 100644
index 000000000..9359392a4
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/37d90f50c56d9f7b111cec169f5ab9bfb4d6c265
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/39de2d6559664ef14feac9fb22f9d6d4e331c3df b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/39de2d6559664ef14feac9fb22f9d6d4e331c3df
new file mode 100644
index 000000000..f4a7e7a7c
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/39de2d6559664ef14feac9fb22f9d6d4e331c3df
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/3ffba46fe2454bcc99f78c3dc6f88fe374064e61 b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/3ffba46fe2454bcc99f78c3dc6f88fe374064e61
new file mode 100644
index 000000000..507de747b
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/3ffba46fe2454bcc99f78c3dc6f88fe374064e61
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/482a2a4e9fbf8d37e6a6b25d5e4114a680bba780 b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/482a2a4e9fbf8d37e6a6b25d5e4114a680bba780
new file mode 100644
index 000000000..3d735a744
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/482a2a4e9fbf8d37e6a6b25d5e4114a680bba780
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/69258ba961995c724bda16e54849ddf4214b5268 b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/69258ba961995c724bda16e54849ddf4214b5268
new file mode 100644
index 000000000..0e1e7e57f
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/69258ba961995c724bda16e54849ddf4214b5268
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/714d9c6db5682d54dab9b32e1e0a0d9af41be7db b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/714d9c6db5682d54dab9b32e1e0a0d9af41be7db
new file mode 100644
index 000000000..a7ee702a7
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/714d9c6db5682d54dab9b32e1e0a0d9af41be7db
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/7e5d0a67d44dafd4c97dbae0f22df352ffa9a7a5 b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/7e5d0a67d44dafd4c97dbae0f22df352ffa9a7a5
new file mode 100644
index 000000000..f5bcf5f62
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/7e5d0a67d44dafd4c97dbae0f22df352ffa9a7a5
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/8140db22a442f2b6ff79f913295dc65ff002ce18 b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/8140db22a442f2b6ff79f913295dc65ff002ce18
new file mode 100644
index 000000000..0db169e5b
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/8140db22a442f2b6ff79f913295dc65ff002ce18
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/8b567822f6e99bbae5d45fe773b57d91eab80523 b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/8b567822f6e99bbae5d45fe773b57d91eab80523
new file mode 100644
index 000000000..13906a02c
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/8b567822f6e99bbae5d45fe773b57d91eab80523
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/8d7499281629925528f4b1d1965b30d18e8106cc b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/8d7499281629925528f4b1d1965b30d18e8106cc
new file mode 100644
index 000000000..570e2fc7b
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/8d7499281629925528f4b1d1965b30d18e8106cc
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/92901274cc8053a25ebcd9dc16000573fefca890 b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/92901274cc8053a25ebcd9dc16000573fefca890
new file mode 100644
index 000000000..20dc10d2d
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/92901274cc8053a25ebcd9dc16000573fefca890
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/9b72fac8d43778fdedf122582f6d35da9e4ba6e8 b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/9b72fac8d43778fdedf122582f6d35da9e4ba6e8
new file mode 100644
index 000000000..0c482053e
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/9b72fac8d43778fdedf122582f6d35da9e4ba6e8
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/aa66765aef7c1f280eefd72fd6616462abae217a b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/aa66765aef7c1f280eefd72fd6616462abae217a
new file mode 100644
index 000000000..a7a72a77e
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/aa66765aef7c1f280eefd72fd6616462abae217a
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/b1aebf7ec4eb8f2100a67d5545db7abd5f6d8556 b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/b1aebf7ec4eb8f2100a67d5545db7abd5f6d8556
new file mode 100644
index 000000000..dd508825f
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/b1aebf7ec4eb8f2100a67d5545db7abd5f6d8556
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/c4c961f05fc573875a692289729e4a57b74467ed b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/c4c961f05fc573875a692289729e4a57b74467ed
new file mode 100644
index 000000000..5d93ca2c9
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/c4c961f05fc573875a692289729e4a57b74467ed
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/d4a95ebc106305a16fe8b089fef0cf79328b911e b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/d4a95ebc106305a16fe8b089fef0cf79328b911e
new file mode 100644
index 000000000..b1479f330
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/d4a95ebc106305a16fe8b089fef0cf79328b911e
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/db09410fd87e8616ca33ad18c4f52549ea7766df b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/db09410fd87e8616ca33ad18c4f52549ea7766df
new file mode 100644
index 000000000..812e3d568
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/db09410fd87e8616ca33ad18c4f52549ea7766df
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/ded748c34764b43955ca5d8693dc090262aae9b4 b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/ded748c34764b43955ca5d8693dc090262aae9b4
new file mode 100644
index 000000000..3d94a6948
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/ded748c34764b43955ca5d8693dc090262aae9b4
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/df30fb4a79d6a748f1296e460a10695e9293f519 b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/df30fb4a79d6a748f1296e460a10695e9293f519
new file mode 100644
index 000000000..1451f999d
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/df30fb4a79d6a748f1296e460a10695e9293f519
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/e2677d230c3a18eba08de18044e2a113cff7175d b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/e2677d230c3a18eba08de18044e2a113cff7175d
new file mode 100644
index 000000000..ba64519fa
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/e2677d230c3a18eba08de18044e2a113cff7175d
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/e4959ac22e4f21a67586e2fdf0c100cc73cdcdfc b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/e4959ac22e4f21a67586e2fdf0c100cc73cdcdfc
new file mode 100644
index 000000000..048f8089f
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/e4959ac22e4f21a67586e2fdf0c100cc73cdcdfc
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/e993681c7fa7481a0df63ac6a0ce725e869483ab b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/e993681c7fa7481a0df63ac6a0ce725e869483ab
new file mode 100644
index 000000000..746400589
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/e993681c7fa7481a0df63ac6a0ce725e869483ab
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/ec7e22e0af761943cf5a6c50e4805eb859f7cc02 b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/ec7e22e0af761943cf5a6c50e4805eb859f7cc02
new file mode 100644
index 000000000..908edb79a
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/ec7e22e0af761943cf5a6c50e4805eb859f7cc02
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/ed72b23177552ec40326087c1bb655bbe7fe6eeb b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/ed72b23177552ec40326087c1bb655bbe7fe6eeb
new file mode 100644
index 000000000..e0e4765df
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/ed72b23177552ec40326087c1bb655bbe7fe6eeb
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/f0a89263ed239a0e0cbadd745bee565781fc5f05 b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/f0a89263ed239a0e0cbadd745bee565781fc5f05
new file mode 100644
index 000000000..b969950c9
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/f0a89263ed239a0e0cbadd745bee565781fc5f05
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/fcc649df2d13827fa80b4e366ed2b34397c86922 b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/fcc649df2d13827fa80b4e366ed2b34397c86922
new file mode 100644
index 000000000..abbced1f9
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_hw_rsi_outliers_da/fcc649df2d13827fa80b4e366ed2b34397c86922
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/0ac1ef806b823a3244ad06308c60dd024beb134a b/fuzz/corpus/fuzz_alg_jitter/0ac1ef806b823a3244ad06308c60dd024beb134a
new file mode 100644
index 000000000..0db5ebf05
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/0ac1ef806b823a3244ad06308c60dd024beb134a
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/12dca6633f0276787a65a0a54d880a0f7f977667 b/fuzz/corpus/fuzz_alg_jitter/12dca6633f0276787a65a0a54d880a0f7f977667
new file mode 100644
index 000000000..e17043a7b
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/12dca6633f0276787a65a0a54d880a0f7f977667
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/14c3f3080b695d67073d04ab6f44e07223077523 b/fuzz/corpus/fuzz_alg_jitter/14c3f3080b695d67073d04ab6f44e07223077523
new file mode 100644
index 000000000..b67f5d01d
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/14c3f3080b695d67073d04ab6f44e07223077523
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/16555af8fd71a3179941ab1bfeb55bd276f5ce16 b/fuzz/corpus/fuzz_alg_jitter/16555af8fd71a3179941ab1bfeb55bd276f5ce16
new file mode 100644
index 000000000..e217081e7
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/16555af8fd71a3179941ab1bfeb55bd276f5ce16
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/263b705d68b52a75539ad5a27493647a74606bfc b/fuzz/corpus/fuzz_alg_jitter/263b705d68b52a75539ad5a27493647a74606bfc
new file mode 100644
index 000000000..c43ac3d1f
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/263b705d68b52a75539ad5a27493647a74606bfc
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/2943d27f7a255e94a345d7e99933b22fdb7e5241 b/fuzz/corpus/fuzz_alg_jitter/2943d27f7a255e94a345d7e99933b22fdb7e5241
new file mode 100644
index 000000000..061693e65
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/2943d27f7a255e94a345d7e99933b22fdb7e5241
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/38292b7b7faa2ce3a662e4006338a6ae1d6a4348 b/fuzz/corpus/fuzz_alg_jitter/38292b7b7faa2ce3a662e4006338a6ae1d6a4348
new file mode 100644
index 000000000..b7593f618
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/38292b7b7faa2ce3a662e4006338a6ae1d6a4348
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/393559caeac9551eda2d0402327c32a3559582b0 b/fuzz/corpus/fuzz_alg_jitter/393559caeac9551eda2d0402327c32a3559582b0
new file mode 100644
index 000000000..355e193f1
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/393559caeac9551eda2d0402327c32a3559582b0
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/42b84a49a98ce810b486ae6d89382c42b805a9fd b/fuzz/corpus/fuzz_alg_jitter/42b84a49a98ce810b486ae6d89382c42b805a9fd
new file mode 100644
index 000000000..2f955e8ce
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/42b84a49a98ce810b486ae6d89382c42b805a9fd
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/57c2343f06a265a0da6ed9e4b9a02f59ead3980e b/fuzz/corpus/fuzz_alg_jitter/57c2343f06a265a0da6ed9e4b9a02f59ead3980e
new file mode 100644
index 000000000..d7482d44e
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/57c2343f06a265a0da6ed9e4b9a02f59ead3980e
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/5af63f2cec6b6757f01863f2988dc26f90e59964 b/fuzz/corpus/fuzz_alg_jitter/5af63f2cec6b6757f01863f2988dc26f90e59964
new file mode 100644
index 000000000..9bdb073b2
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/5af63f2cec6b6757f01863f2988dc26f90e59964
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/6b710d3620df7319158e4e27e731beb5964f170a b/fuzz/corpus/fuzz_alg_jitter/6b710d3620df7319158e4e27e731beb5964f170a
new file mode 100644
index 000000000..5f7407db3
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/6b710d3620df7319158e4e27e731beb5964f170a
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/7207908605854165d1b34112205750b119cc4bcb b/fuzz/corpus/fuzz_alg_jitter/7207908605854165d1b34112205750b119cc4bcb
new file mode 100644
index 000000000..5b2a5f4a4
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/7207908605854165d1b34112205750b119cc4bcb
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/72ff862c103b9c8794417a7540e96c132bbfc08f b/fuzz/corpus/fuzz_alg_jitter/72ff862c103b9c8794417a7540e96c132bbfc08f
new file mode 100644
index 000000000..6c04a2f45
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/72ff862c103b9c8794417a7540e96c132bbfc08f
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/839ead75ffdd1033e4d3d327601bd1180958108a b/fuzz/corpus/fuzz_alg_jitter/839ead75ffdd1033e4d3d327601bd1180958108a
new file mode 100644
index 000000000..1c596666c
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/839ead75ffdd1033e4d3d327601bd1180958108a
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/83a4f7764cf7407c30976e5842e24d323a9ee485 b/fuzz/corpus/fuzz_alg_jitter/83a4f7764cf7407c30976e5842e24d323a9ee485
new file mode 100644
index 000000000..18def9c52
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/83a4f7764cf7407c30976e5842e24d323a9ee485
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/8e80c8a1c1013a1386e78fab8dfc632530bd0c50 b/fuzz/corpus/fuzz_alg_jitter/8e80c8a1c1013a1386e78fab8dfc632530bd0c50
new file mode 100644
index 000000000..8d88e9a82
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/8e80c8a1c1013a1386e78fab8dfc632530bd0c50
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/949c73200e6a34301acb2082f071cae9f594bbb8 b/fuzz/corpus/fuzz_alg_jitter/949c73200e6a34301acb2082f071cae9f594bbb8
new file mode 100644
index 000000000..b99407939
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/949c73200e6a34301acb2082f071cae9f594bbb8
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/9861104f2984aa81e0b940d3735d047c626e2580 b/fuzz/corpus/fuzz_alg_jitter/9861104f2984aa81e0b940d3735d047c626e2580
new file mode 100644
index 000000000..1d3bb7a8a
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/9861104f2984aa81e0b940d3735d047c626e2580
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/a433baa189f8f8bd33fe9e8f5a4c714320646601 b/fuzz/corpus/fuzz_alg_jitter/a433baa189f8f8bd33fe9e8f5a4c714320646601
new file mode 100644
index 000000000..685317528
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/a433baa189f8f8bd33fe9e8f5a4c714320646601
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/a66c1b1182ff1db0c5bb0eabed5802ce85863f1f b/fuzz/corpus/fuzz_alg_jitter/a66c1b1182ff1db0c5bb0eabed5802ce85863f1f
new file mode 100644
index 000000000..3ccda59fd
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/a66c1b1182ff1db0c5bb0eabed5802ce85863f1f
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/b1ae21b303b7e212e297b1f7ae7cb5510c40909c b/fuzz/corpus/fuzz_alg_jitter/b1ae21b303b7e212e297b1f7ae7cb5510c40909c
new file mode 100644
index 000000000..e4198d3eb
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/b1ae21b303b7e212e297b1f7ae7cb5510c40909c
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/bb6ffe620367989689daa684fd5adda0a2bb37b4 b/fuzz/corpus/fuzz_alg_jitter/bb6ffe620367989689daa684fd5adda0a2bb37b4
new file mode 100644
index 000000000..309507e53
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/bb6ffe620367989689daa684fd5adda0a2bb37b4
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/c2b3d51a6e9e0dc4bd1a69711a0e458436f429df b/fuzz/corpus/fuzz_alg_jitter/c2b3d51a6e9e0dc4bd1a69711a0e458436f429df
new file mode 100644
index 000000000..1c84e6c88
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/c2b3d51a6e9e0dc4bd1a69711a0e458436f429df
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/d081ce1d174bf696e5f99fe9c0072858275bcf72 b/fuzz/corpus/fuzz_alg_jitter/d081ce1d174bf696e5f99fe9c0072858275bcf72
new file mode 100644
index 000000000..1fd6b0efb
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/d081ce1d174bf696e5f99fe9c0072858275bcf72
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/d3d566798a666aed486ec1fce968fedd51d63c44 b/fuzz/corpus/fuzz_alg_jitter/d3d566798a666aed486ec1fce968fedd51d63c44
new file mode 100644
index 000000000..ddef086cd
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/d3d566798a666aed486ec1fce968fedd51d63c44
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/d4927bdfbe7f8c6902467f73fb15cd011b2a910e b/fuzz/corpus/fuzz_alg_jitter/d4927bdfbe7f8c6902467f73fb15cd011b2a910e
new file mode 100644
index 000000000..ba6e62ec6
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/d4927bdfbe7f8c6902467f73fb15cd011b2a910e
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/de46b7c49c020ca14635dfc46bd7bd5cef231c50 b/fuzz/corpus/fuzz_alg_jitter/de46b7c49c020ca14635dfc46bd7bd5cef231c50
new file mode 100644
index 000000000..7cc8e9634
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/de46b7c49c020ca14635dfc46bd7bd5cef231c50
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/eb7c4ce9c6a9689a8a1f830b7d630ebd39d0d93b b/fuzz/corpus/fuzz_alg_jitter/eb7c4ce9c6a9689a8a1f830b7d630ebd39d0d93b
new file mode 100644
index 000000000..7bbbbeebf
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/eb7c4ce9c6a9689a8a1f830b7d630ebd39d0d93b
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/ed73b4c4b7fde625f526f2b635ce89ac55ee2776 b/fuzz/corpus/fuzz_alg_jitter/ed73b4c4b7fde625f526f2b635ce89ac55ee2776
new file mode 100644
index 000000000..1b71127c8
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/ed73b4c4b7fde625f526f2b635ce89ac55ee2776
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_jitter/faa89d552c2a56519a163c72e5cfa865037b14bd b/fuzz/corpus/fuzz_alg_jitter/faa89d552c2a56519a163c72e5cfa865037b14bd
new file mode 100644
index 000000000..cf13642a3
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_jitter/faa89d552c2a56519a163c72e5cfa865037b14bd
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/0013cd439eb3fb37426d24da871c2817e189a4d2 b/fuzz/corpus/fuzz_alg_ses_des/0013cd439eb3fb37426d24da871c2817e189a4d2
new file mode 100644
index 000000000..d859e913d
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/0013cd439eb3fb37426d24da871c2817e189a4d2
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/0302070d6257c030b4475215d3a37e091479a5ef b/fuzz/corpus/fuzz_alg_ses_des/0302070d6257c030b4475215d3a37e091479a5ef
new file mode 100644
index 000000000..72384acd8
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/0302070d6257c030b4475215d3a37e091479a5ef
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/03ac6ca559de24be39b7905badef47006bde1f51 b/fuzz/corpus/fuzz_alg_ses_des/03ac6ca559de24be39b7905badef47006bde1f51
new file mode 100644
index 000000000..fda4301c0
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/03ac6ca559de24be39b7905badef47006bde1f51
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/03ce939bba91061d7a4a020c101e23ff8b70ce1c b/fuzz/corpus/fuzz_alg_ses_des/03ce939bba91061d7a4a020c101e23ff8b70ce1c
new file mode 100644
index 000000000..f6113af1e
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/03ce939bba91061d7a4a020c101e23ff8b70ce1c
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/0fc40cde5c54635905550672b222f49b5942bba4 b/fuzz/corpus/fuzz_alg_ses_des/0fc40cde5c54635905550672b222f49b5942bba4
new file mode 100644
index 000000000..7bb18ab90
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/0fc40cde5c54635905550672b222f49b5942bba4
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/10aa450d2edcdfe5654378f337ced8bb4e85fa8b b/fuzz/corpus/fuzz_alg_ses_des/10aa450d2edcdfe5654378f337ced8bb4e85fa8b
new file mode 100644
index 000000000..1eae93cb6
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/10aa450d2edcdfe5654378f337ced8bb4e85fa8b
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/11363c5f6ddc39ceabb41dc993456105c6d05ddd b/fuzz/corpus/fuzz_alg_ses_des/11363c5f6ddc39ceabb41dc993456105c6d05ddd
new file mode 100644
index 000000000..9cfdf2494
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/11363c5f6ddc39ceabb41dc993456105c6d05ddd
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/12016c80dd42b75d0fcfef5ceceec6719c58e99f b/fuzz/corpus/fuzz_alg_ses_des/12016c80dd42b75d0fcfef5ceceec6719c58e99f
new file mode 100644
index 000000000..57a7ef665
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/12016c80dd42b75d0fcfef5ceceec6719c58e99f
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/123c9d4b9e5dece29ff6f11746e02955f79f92fb b/fuzz/corpus/fuzz_alg_ses_des/123c9d4b9e5dece29ff6f11746e02955f79f92fb
new file mode 100644
index 000000000..05ba0fa16
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/123c9d4b9e5dece29ff6f11746e02955f79f92fb
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/13569f7a74488158bb1e8d3149caac45d23bd0f7 b/fuzz/corpus/fuzz_alg_ses_des/13569f7a74488158bb1e8d3149caac45d23bd0f7
new file mode 100644
index 000000000..3eaa9e3b3
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/13569f7a74488158bb1e8d3149caac45d23bd0f7
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/169bc80e4a466117a8314f38962451ca37115ef4 b/fuzz/corpus/fuzz_alg_ses_des/169bc80e4a466117a8314f38962451ca37115ef4
new file mode 100644
index 000000000..b295217ea
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/169bc80e4a466117a8314f38962451ca37115ef4
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/21964b3aef63a455c439af0edb0319876c25139d b/fuzz/corpus/fuzz_alg_ses_des/21964b3aef63a455c439af0edb0319876c25139d
new file mode 100644
index 000000000..e58a4018f
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/21964b3aef63a455c439af0edb0319876c25139d
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/249dab7a1b66e669af908f2df85f2699c8f57e95 b/fuzz/corpus/fuzz_alg_ses_des/249dab7a1b66e669af908f2df85f2699c8f57e95
new file mode 100644
index 000000000..e15aacf1a
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/249dab7a1b66e669af908f2df85f2699c8f57e95
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/28b03ea64eef571ad558691e1ec67104f9deac12 b/fuzz/corpus/fuzz_alg_ses_des/28b03ea64eef571ad558691e1ec67104f9deac12
new file mode 100644
index 000000000..bdbd81d64
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/28b03ea64eef571ad558691e1ec67104f9deac12
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/2b87f55ff2fc70199a9a730539964db596e1f914 b/fuzz/corpus/fuzz_alg_ses_des/2b87f55ff2fc70199a9a730539964db596e1f914
new file mode 100644
index 000000000..cc0bff10b
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/2b87f55ff2fc70199a9a730539964db596e1f914
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/303516650a50c7296cd224b01bb339b4a8bc2de6 b/fuzz/corpus/fuzz_alg_ses_des/303516650a50c7296cd224b01bb339b4a8bc2de6
new file mode 100644
index 000000000..134850e8f
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/303516650a50c7296cd224b01bb339b4a8bc2de6
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/3237b0b647b476779584c58b0d9c2041a162e3cd b/fuzz/corpus/fuzz_alg_ses_des/3237b0b647b476779584c58b0d9c2041a162e3cd
new file mode 100644
index 000000000..125d48438
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/3237b0b647b476779584c58b0d9c2041a162e3cd
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/33929b11cd8c87583304a243b95ddd68f24f2905 b/fuzz/corpus/fuzz_alg_ses_des/33929b11cd8c87583304a243b95ddd68f24f2905
new file mode 100644
index 000000000..88b010192
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/33929b11cd8c87583304a243b95ddd68f24f2905
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/34856406db53ad890908e752813217a83f56dc7b b/fuzz/corpus/fuzz_alg_ses_des/34856406db53ad890908e752813217a83f56dc7b
new file mode 100644
index 000000000..cabe5a340
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/34856406db53ad890908e752813217a83f56dc7b
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/380bd2129e1d864d36cae6dfc07b1745a8c4567a b/fuzz/corpus/fuzz_alg_ses_des/380bd2129e1d864d36cae6dfc07b1745a8c4567a
new file mode 100644
index 000000000..9c8969adb
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/380bd2129e1d864d36cae6dfc07b1745a8c4567a
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/487a704ceff08291d76e6acc830bf586a08b062e b/fuzz/corpus/fuzz_alg_ses_des/487a704ceff08291d76e6acc830bf586a08b062e
new file mode 100644
index 000000000..a5a431861
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/487a704ceff08291d76e6acc830bf586a08b062e
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/50b4f149df2fb486c7ae2dbb1b4a599edc01e0a6 b/fuzz/corpus/fuzz_alg_ses_des/50b4f149df2fb486c7ae2dbb1b4a599edc01e0a6
new file mode 100644
index 000000000..b999b57e9
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/50b4f149df2fb486c7ae2dbb1b4a599edc01e0a6
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/57f834876c730fc488cca4a6c9437ab88c561af0 b/fuzz/corpus/fuzz_alg_ses_des/57f834876c730fc488cca4a6c9437ab88c561af0
new file mode 100644
index 000000000..ed20355b4
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/57f834876c730fc488cca4a6c9437ab88c561af0
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/581fc433dfdd173ef1e75d850030a89ee3ec513b b/fuzz/corpus/fuzz_alg_ses_des/581fc433dfdd173ef1e75d850030a89ee3ec513b
new file mode 100644
index 000000000..dcca44834
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/581fc433dfdd173ef1e75d850030a89ee3ec513b
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/58cc86bf62bc86e6ba81f5b2ab50276bb2b60d3b b/fuzz/corpus/fuzz_alg_ses_des/58cc86bf62bc86e6ba81f5b2ab50276bb2b60d3b
new file mode 100644
index 000000000..623b32d6a
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/58cc86bf62bc86e6ba81f5b2ab50276bb2b60d3b
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/59131a07dafccba6e39e61b4cd96e3946850f443 b/fuzz/corpus/fuzz_alg_ses_des/59131a07dafccba6e39e61b4cd96e3946850f443
new file mode 100644
index 000000000..75e474107
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/59131a07dafccba6e39e61b4cd96e3946850f443
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/5bdf102a2d05e8c7a4e34177cc06a878bc237490 b/fuzz/corpus/fuzz_alg_ses_des/5bdf102a2d05e8c7a4e34177cc06a878bc237490
new file mode 100644
index 000000000..146b428d6
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/5bdf102a2d05e8c7a4e34177cc06a878bc237490
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/71898c74b5f12c1396a68797123ec3fa5f241088 b/fuzz/corpus/fuzz_alg_ses_des/71898c74b5f12c1396a68797123ec3fa5f241088
new file mode 100644
index 000000000..dabac63f6
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/71898c74b5f12c1396a68797123ec3fa5f241088
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/74f10ca83322f31e98351ed52331344a92161763 b/fuzz/corpus/fuzz_alg_ses_des/74f10ca83322f31e98351ed52331344a92161763
new file mode 100644
index 000000000..b9fc2ecff
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/74f10ca83322f31e98351ed52331344a92161763
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/7bbe6e0541c9720ea56e52095e031f6779a1d49d b/fuzz/corpus/fuzz_alg_ses_des/7bbe6e0541c9720ea56e52095e031f6779a1d49d
new file mode 100644
index 000000000..9fbaf0b17
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/7bbe6e0541c9720ea56e52095e031f6779a1d49d
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/7c7992e7ec61bc9a6f8911af0e4dad9d74eee7a3 b/fuzz/corpus/fuzz_alg_ses_des/7c7992e7ec61bc9a6f8911af0e4dad9d74eee7a3
new file mode 100644
index 000000000..4ab94978e
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/7c7992e7ec61bc9a6f8911af0e4dad9d74eee7a3
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/828a525fed17014ea910085c549e4a9e7f8379f4 b/fuzz/corpus/fuzz_alg_ses_des/828a525fed17014ea910085c549e4a9e7f8379f4
new file mode 100644
index 000000000..cb6f4452f
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/828a525fed17014ea910085c549e4a9e7f8379f4
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/8996382e24ac33a4179e4217de15737323684c56 b/fuzz/corpus/fuzz_alg_ses_des/8996382e24ac33a4179e4217de15737323684c56
new file mode 100644
index 000000000..19761b60a
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/8996382e24ac33a4179e4217de15737323684c56
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/8a9fa2daade2fb9a1c4a034bdffb230a3cad16f8 b/fuzz/corpus/fuzz_alg_ses_des/8a9fa2daade2fb9a1c4a034bdffb230a3cad16f8
new file mode 100644
index 000000000..7ba867d0d
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/8a9fa2daade2fb9a1c4a034bdffb230a3cad16f8
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/8c3c2c5faa479afc34fc3f279cca10185735fce4 b/fuzz/corpus/fuzz_alg_ses_des/8c3c2c5faa479afc34fc3f279cca10185735fce4
new file mode 100644
index 000000000..146ebfd56
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/8c3c2c5faa479afc34fc3f279cca10185735fce4
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/8e315574ac2ad99f36a91fde5cbcc1793d674286 b/fuzz/corpus/fuzz_alg_ses_des/8e315574ac2ad99f36a91fde5cbcc1793d674286
new file mode 100644
index 000000000..0588841ee
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/8e315574ac2ad99f36a91fde5cbcc1793d674286
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/8e691df9aee855060ce243e6b655e6fdd5c156b1 b/fuzz/corpus/fuzz_alg_ses_des/8e691df9aee855060ce243e6b655e6fdd5c156b1
new file mode 100644
index 000000000..ac2c882ed
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/8e691df9aee855060ce243e6b655e6fdd5c156b1
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/91e97992067d6ea4edaf24efcb4e290b18a891e3 b/fuzz/corpus/fuzz_alg_ses_des/91e97992067d6ea4edaf24efcb4e290b18a891e3
new file mode 100644
index 000000000..bad684f46
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/91e97992067d6ea4edaf24efcb4e290b18a891e3
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/93182a310374fd968b83d4e092644ac4a66693b9 b/fuzz/corpus/fuzz_alg_ses_des/93182a310374fd968b83d4e092644ac4a66693b9
new file mode 100644
index 000000000..412bf5ea5
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/93182a310374fd968b83d4e092644ac4a66693b9
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/b95101ee9055e9d2bf79fc65873505219fd106ad b/fuzz/corpus/fuzz_alg_ses_des/b95101ee9055e9d2bf79fc65873505219fd106ad
new file mode 100644
index 000000000..2204ee5d9
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/b95101ee9055e9d2bf79fc65873505219fd106ad
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/bb7ff45c7186c060994d6baeba835912cb3d0241 b/fuzz/corpus/fuzz_alg_ses_des/bb7ff45c7186c060994d6baeba835912cb3d0241
new file mode 100644
index 000000000..ce390b209
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/bb7ff45c7186c060994d6baeba835912cb3d0241
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/bc5841c8c701c799d9e2df735081b9f321217bd7 b/fuzz/corpus/fuzz_alg_ses_des/bc5841c8c701c799d9e2df735081b9f321217bd7
new file mode 100644
index 000000000..d01ae22b4
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/bc5841c8c701c799d9e2df735081b9f321217bd7
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/bf62c9b21aaec058a7cc6fbd28845e5e5c0e7803 b/fuzz/corpus/fuzz_alg_ses_des/bf62c9b21aaec058a7cc6fbd28845e5e5c0e7803
new file mode 100644
index 000000000..0f3fe5a62
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/bf62c9b21aaec058a7cc6fbd28845e5e5c0e7803
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/c1f192833f86edf35fc2071cce804d0da7561231 b/fuzz/corpus/fuzz_alg_ses_des/c1f192833f86edf35fc2071cce804d0da7561231
new file mode 100644
index 000000000..48aae7ab7
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/c1f192833f86edf35fc2071cce804d0da7561231
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/c42986c70a3375ba84f7d22aaff2546a2d84c150 b/fuzz/corpus/fuzz_alg_ses_des/c42986c70a3375ba84f7d22aaff2546a2d84c150
new file mode 100644
index 000000000..b6c5cbeb4
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/c42986c70a3375ba84f7d22aaff2546a2d84c150
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/c822d83b09f4f2d9e89aff2edc40d849fc88e236 b/fuzz/corpus/fuzz_alg_ses_des/c822d83b09f4f2d9e89aff2edc40d849fc88e236
new file mode 100644
index 000000000..95cde094b
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/c822d83b09f4f2d9e89aff2edc40d849fc88e236
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/cd1cf754b7025891efd08e917c80da34db03b2d4 b/fuzz/corpus/fuzz_alg_ses_des/cd1cf754b7025891efd08e917c80da34db03b2d4
new file mode 100644
index 000000000..af7e91897
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/cd1cf754b7025891efd08e917c80da34db03b2d4
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/cd7f2b750bd5120c22394e5045d58d4fd0ef36d1 b/fuzz/corpus/fuzz_alg_ses_des/cd7f2b750bd5120c22394e5045d58d4fd0ef36d1
new file mode 100644
index 000000000..776f70fe3
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/cd7f2b750bd5120c22394e5045d58d4fd0ef36d1
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/d05fbdddab7d87850e7ad82f817cbafd3c74bcf3 b/fuzz/corpus/fuzz_alg_ses_des/d05fbdddab7d87850e7ad82f817cbafd3c74bcf3
new file mode 100644
index 000000000..47841b030
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/d05fbdddab7d87850e7ad82f817cbafd3c74bcf3
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/d06b8e5d2cb3c09b193595a4832a2e99cccee7b1 b/fuzz/corpus/fuzz_alg_ses_des/d06b8e5d2cb3c09b193595a4832a2e99cccee7b1
new file mode 100644
index 000000000..eec49c9f9
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/d06b8e5d2cb3c09b193595a4832a2e99cccee7b1
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/e09f3079c7ab129e7e93af5891fd7c98d809d5cb b/fuzz/corpus/fuzz_alg_ses_des/e09f3079c7ab129e7e93af5891fd7c98d809d5cb
new file mode 100644
index 000000000..b627a89c1
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/e09f3079c7ab129e7e93af5891fd7c98d809d5cb
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/e4d7c7448ad34c9c38af3722b78156b1a3b7eb77 b/fuzz/corpus/fuzz_alg_ses_des/e4d7c7448ad34c9c38af3722b78156b1a3b7eb77
new file mode 100644
index 000000000..4f7a32270
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/e4d7c7448ad34c9c38af3722b78156b1a3b7eb77
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/e5fd64bfffb16b2667a8fa42c25847e964d8db33 b/fuzz/corpus/fuzz_alg_ses_des/e5fd64bfffb16b2667a8fa42c25847e964d8db33
new file mode 100644
index 000000000..b6e139b8f
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/e5fd64bfffb16b2667a8fa42c25847e964d8db33
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/ef26a6b2c94b6d237a977ea4d7487091cd59910a b/fuzz/corpus/fuzz_alg_ses_des/ef26a6b2c94b6d237a977ea4d7487091cd59910a
new file mode 100644
index 000000000..80d6069e9
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/ef26a6b2c94b6d237a977ea4d7487091cd59910a
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/f08f75e5dc02a53872a999849712a21215108616 b/fuzz/corpus/fuzz_alg_ses_des/f08f75e5dc02a53872a999849712a21215108616
new file mode 100644
index 000000000..6d815f12f
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/f08f75e5dc02a53872a999849712a21215108616
Binary files differ
diff --git a/fuzz/corpus/fuzz_alg_ses_des/f224b0e9ac62539afac36abe071221abcb7b9db2 b/fuzz/corpus/fuzz_alg_ses_des/f224b0e9ac62539afac36abe071221abcb7b9db2
new file mode 100644
index 000000000..6fd522635
--- /dev/null
+++ b/fuzz/corpus/fuzz_alg_ses_des/f224b0e9ac62539afac36abe071221abcb7b9db2
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/0872c9dcaffcd72797e288877c0dd38a3d1949fb b/fuzz/corpus/fuzz_ds_ahocorasick/0872c9dcaffcd72797e288877c0dd38a3d1949fb
new file mode 100644
index 000000000..3c4e4b6de
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/0872c9dcaffcd72797e288877c0dd38a3d1949fb
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/0b339fdc42355c7326ff0aa40543d56f427be2ab b/fuzz/corpus/fuzz_ds_ahocorasick/0b339fdc42355c7326ff0aa40543d56f427be2ab
new file mode 100644
index 000000000..c35cf7ab1
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/0b339fdc42355c7326ff0aa40543d56f427be2ab
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/0c5a5d5dc3ff3e9df6c811f169f73c6e480b058e b/fuzz/corpus/fuzz_ds_ahocorasick/0c5a5d5dc3ff3e9df6c811f169f73c6e480b058e
new file mode 100644
index 000000000..11256795e
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/0c5a5d5dc3ff3e9df6c811f169f73c6e480b058e
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/0ecac5501614fb5664fb520d8767de007c9662f7 b/fuzz/corpus/fuzz_ds_ahocorasick/0ecac5501614fb5664fb520d8767de007c9662f7
new file mode 100644
index 000000000..e730a287b
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/0ecac5501614fb5664fb520d8767de007c9662f7
@@ -0,0 +1 @@
+³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³""""""""""""""""""""""""""/""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³"""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³""""""""""""""""""""""""""/""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³""/""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³""""ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ""""""""""""""""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³"z"""""""""³³³³³³³³³³³³³³³³³³³³³³³""""³³³³³³³³³³³³³³³³³³³³³³³³³³³ \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/13720bca310543d7922778c58bbc90b0adedaad9 b/fuzz/corpus/fuzz_ds_ahocorasick/13720bca310543d7922778c58bbc90b0adedaad9
new file mode 100644
index 000000000..7e3084ec2
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/13720bca310543d7922778c58bbc90b0adedaad9
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/1411ace1b8e44f6d0ccf5d6bc5669663f8bee9d1 b/fuzz/corpus/fuzz_ds_ahocorasick/1411ace1b8e44f6d0ccf5d6bc5669663f8bee9d1
new file mode 100644
index 000000000..9801cf648
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/1411ace1b8e44f6d0ccf5d6bc5669663f8bee9d1
@@ -0,0 +1 @@
+³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³±³³³³³³³³³³³³³³""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³“³³³³³³³³""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³"""""""""""""""""""""""""""""""""""""""""""""""""""!""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³ÿÿÿÿÿÿÿ³³³³³"""""""""""""""""""""""""""""""""""""""""""""""""""""""""ÿÿÿÿÿÿÿ"""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³"""""""""""""""""""""""""""""""ØÝ"""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/1ad24d7012604574786aab655b1bb2e38ec759f3 b/fuzz/corpus/fuzz_ds_ahocorasick/1ad24d7012604574786aab655b1bb2e38ec759f3
new file mode 100644
index 000000000..2e53df5b1
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/1ad24d7012604574786aab655b1bb2e38ec759f3
@@ -0,0 +1,3 @@
+³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³""""""""""""""""""³³³³³³³³³³³³"""""z"""""""""""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³""""""""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³"""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³""""""""""""""""""""""""""""""""""#"""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³®³³³³³³³³³³³³³³³³³³³³³³³³""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³MLLP³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³\\\\\\\\\\\\\\\\\\\\\\\\\\\\³³³³³³\\\\\\\³³³³³³³³³³³³³³³³³³³³³³³³\\\\\\\\\\\\\Ø\\\\\\\\\\³³³³³\\\\\\\
+\\\\\\\\\\\\\\\\\\\\\\\\\\\³³³³³\\\\\\\\\\\\
+\\\\\\\\\\\\\\\\\\\ \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/1b466d896dfdd72275059a53f21e5abbff8e58d2 b/fuzz/corpus/fuzz_ds_ahocorasick/1b466d896dfdd72275059a53f21e5abbff8e58d2
new file mode 100644
index 000000000..61ce7365d
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/1b466d896dfdd72275059a53f21e5abbff8e58d2
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/1cb0a59f62c0c5bd4d6059ad1dd93643efcebe26 b/fuzz/corpus/fuzz_ds_ahocorasick/1cb0a59f62c0c5bd4d6059ad1dd93643efcebe26
new file mode 100644
index 000000000..652fff1ac
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/1cb0a59f62c0c5bd4d6059ad1dd93643efcebe26
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/2e7f87f35104a62d1e029f01d22043208468c80c b/fuzz/corpus/fuzz_ds_ahocorasick/2e7f87f35104a62d1e029f01d22043208468c80c
new file mode 100644
index 000000000..243f3579e
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/2e7f87f35104a62d1e029f01d22043208468c80c
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/2ff35048123232a78e60d8f3420332b287b0f773 b/fuzz/corpus/fuzz_ds_ahocorasick/2ff35048123232a78e60d8f3420332b287b0f773
new file mode 100644
index 000000000..20e52873d
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/2ff35048123232a78e60d8f3420332b287b0f773
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/3318214ae4652b96520333ccbf49ce7a4ca6775d b/fuzz/corpus/fuzz_ds_ahocorasick/3318214ae4652b96520333ccbf49ce7a4ca6775d
new file mode 100644
index 000000000..b9c663625
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/3318214ae4652b96520333ccbf49ce7a4ca6775d
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/33e34758ed0b6efc73afd284b1971893a36195a1 b/fuzz/corpus/fuzz_ds_ahocorasick/33e34758ed0b6efc73afd284b1971893a36195a1
new file mode 100644
index 000000000..9f49f025c
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/33e34758ed0b6efc73afd284b1971893a36195a1
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/40e5e7655670bb158c7022b476ab67b2040a28d4 b/fuzz/corpus/fuzz_ds_ahocorasick/40e5e7655670bb158c7022b476ab67b2040a28d4
new file mode 100644
index 000000000..2fa38b08a
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/40e5e7655670bb158c7022b476ab67b2040a28d4
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/4548c9eafb2b055c155f0411c2f09ce6ad6ee326 b/fuzz/corpus/fuzz_ds_ahocorasick/4548c9eafb2b055c155f0411c2f09ce6ad6ee326
new file mode 100644
index 000000000..52c3b40a9
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/4548c9eafb2b055c155f0411c2f09ce6ad6ee326
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/46c7c4e01559184d5a61a1fcb1373c5bf6a14bf3 b/fuzz/corpus/fuzz_ds_ahocorasick/46c7c4e01559184d5a61a1fcb1373c5bf6a14bf3
new file mode 100644
index 000000000..20b7c35b4
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/46c7c4e01559184d5a61a1fcb1373c5bf6a14bf3
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/47b585fc8efb2975198a4794a2bb9ea8db57e578 b/fuzz/corpus/fuzz_ds_ahocorasick/47b585fc8efb2975198a4794a2bb9ea8db57e578
new file mode 100644
index 000000000..c71a2c725
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/47b585fc8efb2975198a4794a2bb9ea8db57e578
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/483492b3ba626f4f0c77c21841a92d1b8de41f41 b/fuzz/corpus/fuzz_ds_ahocorasick/483492b3ba626f4f0c77c21841a92d1b8de41f41
new file mode 100644
index 000000000..c0c724109
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/483492b3ba626f4f0c77c21841a92d1b8de41f41
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/51e7ed64e7ce54e4aa56aa5de5339e5a65cab306 b/fuzz/corpus/fuzz_ds_ahocorasick/51e7ed64e7ce54e4aa56aa5de5339e5a65cab306
new file mode 100644
index 000000000..da1219d4c
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/51e7ed64e7ce54e4aa56aa5de5339e5a65cab306
@@ -0,0 +1 @@
+³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³ÿÿÿÿÿÿÿ ³³³³³³³³³³³³³³³³³³³³³³³³³³³""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³"""""z""""""""""""""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³MLLLLLLE³³³³³³""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³""""""""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³"""""""³³³³³³³"""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³¢""""""""""""""""""""""""""""³³"³³³³³³³³³ \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/52c19ccb302acd2891e5d4f603e1ff43617a2999 b/fuzz/corpus/fuzz_ds_ahocorasick/52c19ccb302acd2891e5d4f603e1ff43617a2999
new file mode 100644
index 000000000..4fcb8f3a7
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/52c19ccb302acd2891e5d4f603e1ff43617a2999
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/5a08eef5894e00a58d1cb2a6ff95b57daa8b5ed2 b/fuzz/corpus/fuzz_ds_ahocorasick/5a08eef5894e00a58d1cb2a6ff95b57daa8b5ed2
new file mode 100644
index 000000000..0d878c438
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/5a08eef5894e00a58d1cb2a6ff95b57daa8b5ed2
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/60496a70ac884918a0582b59058311721a8b0e2e b/fuzz/corpus/fuzz_ds_ahocorasick/60496a70ac884918a0582b59058311721a8b0e2e
new file mode 100644
index 000000000..9bd0b9801
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/60496a70ac884918a0582b59058311721a8b0e2e
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/69253c014b17a7246741acdd8fccbfced65680b9 b/fuzz/corpus/fuzz_ds_ahocorasick/69253c014b17a7246741acdd8fccbfced65680b9
new file mode 100644
index 000000000..6e2cafc1e
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/69253c014b17a7246741acdd8fccbfced65680b9
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/6af29db34ec0851f33adde39292eae79a523400c b/fuzz/corpus/fuzz_ds_ahocorasick/6af29db34ec0851f33adde39292eae79a523400c
new file mode 100644
index 000000000..bb08b45e3
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/6af29db34ec0851f33adde39292eae79a523400c
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/70450e01aaac34038ed134d5bb5d8e9502065454 b/fuzz/corpus/fuzz_ds_ahocorasick/70450e01aaac34038ed134d5bb5d8e9502065454
new file mode 100644
index 000000000..1d113aa90
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/70450e01aaac34038ed134d5bb5d8e9502065454
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/706438b3a5497dab120989b1f26f2789b1a1cb96 b/fuzz/corpus/fuzz_ds_ahocorasick/706438b3a5497dab120989b1f26f2789b1a1cb96
new file mode 100644
index 000000000..904209b0f
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/706438b3a5497dab120989b1f26f2789b1a1cb96
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/7c7d82f8c184500c1ff8b316d4e513767a16d879 b/fuzz/corpus/fuzz_ds_ahocorasick/7c7d82f8c184500c1ff8b316d4e513767a16d879
new file mode 100644
index 000000000..7db8ccd53
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/7c7d82f8c184500c1ff8b316d4e513767a16d879
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/7cc83a4b869fcb68f5c30e3d1a062b6b78602d8d b/fuzz/corpus/fuzz_ds_ahocorasick/7cc83a4b869fcb68f5c30e3d1a062b6b78602d8d
new file mode 100644
index 000000000..80f9861b6
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/7cc83a4b869fcb68f5c30e3d1a062b6b78602d8d
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/7f2c29a98e847ffe21646d3e2289166672c88d1a b/fuzz/corpus/fuzz_ds_ahocorasick/7f2c29a98e847ffe21646d3e2289166672c88d1a
new file mode 100644
index 000000000..0d2b36086
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/7f2c29a98e847ffe21646d3e2289166672c88d1a
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/800a437326ee96ac3adfb666d326b2d063f0103f b/fuzz/corpus/fuzz_ds_ahocorasick/800a437326ee96ac3adfb666d326b2d063f0103f
new file mode 100644
index 000000000..8538a21a2
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/800a437326ee96ac3adfb666d326b2d063f0103f
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/804eb54d67309af89e66e952e755b6059d5f7091 b/fuzz/corpus/fuzz_ds_ahocorasick/804eb54d67309af89e66e952e755b6059d5f7091
new file mode 100644
index 000000000..70b742fc8
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/804eb54d67309af89e66e952e755b6059d5f7091
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/80f088d5275c598925a8c25afd4b3b4c4d174c2a b/fuzz/corpus/fuzz_ds_ahocorasick/80f088d5275c598925a8c25afd4b3b4c4d174c2a
new file mode 100644
index 000000000..c8601f3a3
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/80f088d5275c598925a8c25afd4b3b4c4d174c2a
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/82a95f9bff17cf1924dd0b123a646b9e4d26e5a5 b/fuzz/corpus/fuzz_ds_ahocorasick/82a95f9bff17cf1924dd0b123a646b9e4d26e5a5
new file mode 100644
index 000000000..018b0fcad
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/82a95f9bff17cf1924dd0b123a646b9e4d26e5a5
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/875e9b19340fbb129ed25c40d3582166766267bd b/fuzz/corpus/fuzz_ds_ahocorasick/875e9b19340fbb129ed25c40d3582166766267bd
new file mode 100644
index 000000000..dfa355679
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/875e9b19340fbb129ed25c40d3582166766267bd
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/9b072d7ac75bea0e9fe5478099a3dd962f72721b b/fuzz/corpus/fuzz_ds_ahocorasick/9b072d7ac75bea0e9fe5478099a3dd962f72721b
new file mode 100644
index 000000000..0087389e3
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/9b072d7ac75bea0e9fe5478099a3dd962f72721b
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/a0705f19f4b281be6fcdd2283bd7551a82d8edd4 b/fuzz/corpus/fuzz_ds_ahocorasick/a0705f19f4b281be6fcdd2283bd7551a82d8edd4
new file mode 100644
index 000000000..1ce583fae
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/a0705f19f4b281be6fcdd2283bd7551a82d8edd4
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/a1927d30482cc1654e8fba0499f9724f207cd72a b/fuzz/corpus/fuzz_ds_ahocorasick/a1927d30482cc1654e8fba0499f9724f207cd72a
new file mode 100644
index 000000000..df45c9871
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/a1927d30482cc1654e8fba0499f9724f207cd72a
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/a2842142a43d2a91b830686ad9c19223231226cb b/fuzz/corpus/fuzz_ds_ahocorasick/a2842142a43d2a91b830686ad9c19223231226cb
new file mode 100644
index 000000000..5801a423a
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/a2842142a43d2a91b830686ad9c19223231226cb
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/a49810230141a0bf5afb9a1f33e4dfed2955ca37 b/fuzz/corpus/fuzz_ds_ahocorasick/a49810230141a0bf5afb9a1f33e4dfed2955ca37
new file mode 100644
index 000000000..6cbbcc75a
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/a49810230141a0bf5afb9a1f33e4dfed2955ca37
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/a793e210460a293985f6ef790188a9fb92a1a9ee b/fuzz/corpus/fuzz_ds_ahocorasick/a793e210460a293985f6ef790188a9fb92a1a9ee
new file mode 100644
index 000000000..e9843218d
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/a793e210460a293985f6ef790188a9fb92a1a9ee
@@ -0,0 +1 @@
+³³""""""""""""""""""""""""""""³³³³³"""""""""""""""""""""""0""""""""""""""""""""ÿÿÿÿÿÿÿ"""""³³³³ÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎγ³³³³³³³³³³³³³³³³³³³?³³³³³³³³´³³³³³³³³³³³³³³³""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ³³³³³³³³³³³³³³³³²²²²²²²²²²²²²²²²²²²²²³³³³³³³³³³³³³³³³³³³³³³³³&³³³³³³"""""""""""""""""""""""""""""""""2""""³³³³³³³³³³³³³³³³"""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³""³³³³³³"&"""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³z³³³³³³³³³³³³³³³³³³³³""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³MLLP³³³³³³³³³³³³³³³³³³³³³³³\\\\"""""""""""""""""""""""""""000000000000000000000000000000000961""""""""""""""""""" """""""""ÿÿÿÿÿ³³³³³³""""""ÙÝ""""""""""""""""""""""""z""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/ae8884740527cd378965db9843c98727de770e09 b/fuzz/corpus/fuzz_ds_ahocorasick/ae8884740527cd378965db9843c98727de770e09
new file mode 100644
index 000000000..4d9c1366c
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/ae8884740527cd378965db9843c98727de770e09
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/b82001f17b627d6b756a07d3c2d3f652e6bd2d62 b/fuzz/corpus/fuzz_ds_ahocorasick/b82001f17b627d6b756a07d3c2d3f652e6bd2d62
new file mode 100644
index 000000000..59ff4ac1f
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/b82001f17b627d6b756a07d3c2d3f652e6bd2d62
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/b82b2d0f54a12b4acb36c3562feda4efe3050758 b/fuzz/corpus/fuzz_ds_ahocorasick/b82b2d0f54a12b4acb36c3562feda4efe3050758
new file mode 100644
index 000000000..b2b6ba014
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/b82b2d0f54a12b4acb36c3562feda4efe3050758
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/b9749b1c2d0c425dc1be97b13f972ee9a44cfcab b/fuzz/corpus/fuzz_ds_ahocorasick/b9749b1c2d0c425dc1be97b13f972ee9a44cfcab
new file mode 100644
index 000000000..a18f42cf1
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/b9749b1c2d0c425dc1be97b13f972ee9a44cfcab
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/bd5015cee82171ac5097d615cb4f3626f3cf5203 b/fuzz/corpus/fuzz_ds_ahocorasick/bd5015cee82171ac5097d615cb4f3626f3cf5203
new file mode 100644
index 000000000..6fab14e18
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/bd5015cee82171ac5097d615cb4f3626f3cf5203
@@ -0,0 +1 @@
+³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³"""""""""""""""""""""""""³³³³³³³³³³³³³³³"""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³±³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³MLLLLÝÝÜ"""""""""""""""""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³""""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³"³³³³³³³³³³³³³³³³³³³³³""""""""""" \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/c386e02aeae468bd5130a5b99de1b366382a33a7 b/fuzz/corpus/fuzz_ds_ahocorasick/c386e02aeae468bd5130a5b99de1b366382a33a7
new file mode 100644
index 000000000..814641597
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/c386e02aeae468bd5130a5b99de1b366382a33a7
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/c80bb9d319d7c0a436ee24aa46d1734fbcc3463e b/fuzz/corpus/fuzz_ds_ahocorasick/c80bb9d319d7c0a436ee24aa46d1734fbcc3463e
new file mode 100644
index 000000000..1c6e8b1ca
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/c80bb9d319d7c0a436ee24aa46d1734fbcc3463e
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/cbec151ca6ed723e00fb874b4a0d9ff478f6b21b b/fuzz/corpus/fuzz_ds_ahocorasick/cbec151ca6ed723e00fb874b4a0d9ff478f6b21b
new file mode 100644
index 000000000..b8256d698
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/cbec151ca6ed723e00fb874b4a0d9ff478f6b21b
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/cd709d9b76a28b0e28d2ef779096066f9f581030 b/fuzz/corpus/fuzz_ds_ahocorasick/cd709d9b76a28b0e28d2ef779096066f9f581030
new file mode 100644
index 000000000..6d70bd69c
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/cd709d9b76a28b0e28d2ef779096066f9f581030
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/cfb0a5bcaa8c4de6f1820bfde5a78a3c0c282f3e b/fuzz/corpus/fuzz_ds_ahocorasick/cfb0a5bcaa8c4de6f1820bfde5a78a3c0c282f3e
new file mode 100644
index 000000000..a8ef2dee9
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/cfb0a5bcaa8c4de6f1820bfde5a78a3c0c282f3e
@@ -0,0 +1 @@
+³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""³³³ T ³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³MLLP³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰‰³³³³³³³³³³³³³³³³³³³³""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³"""""""""""""³³"""""""""""""""""""""""""""""""""""""""""""""""""""³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³""""""""""""""³³³³³
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/d14bf08ba76e6641f39a58555d07c979c7157bc6 b/fuzz/corpus/fuzz_ds_ahocorasick/d14bf08ba76e6641f39a58555d07c979c7157bc6
new file mode 100644
index 000000000..74c588d80
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/d14bf08ba76e6641f39a58555d07c979c7157bc6
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/d68cbcd904ddb5b55437aa41b452c7ab2e0e84c4 b/fuzz/corpus/fuzz_ds_ahocorasick/d68cbcd904ddb5b55437aa41b452c7ab2e0e84c4
new file mode 100644
index 000000000..e34502a18
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/d68cbcd904ddb5b55437aa41b452c7ab2e0e84c4
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/d866bde40f86c1a1178ea367118aed39a6a6e086 b/fuzz/corpus/fuzz_ds_ahocorasick/d866bde40f86c1a1178ea367118aed39a6a6e086
new file mode 100644
index 000000000..b2b6fc6e2
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/d866bde40f86c1a1178ea367118aed39a6a6e086
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/daa6e08a392803f772858633b94159e2e4e0cc42 b/fuzz/corpus/fuzz_ds_ahocorasick/daa6e08a392803f772858633b94159e2e4e0cc42
new file mode 100644
index 000000000..d39cfdb3a
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/daa6e08a392803f772858633b94159e2e4e0cc42
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/dcaa72e4a5feb858c48f1dba2bd873ce9d278a56 b/fuzz/corpus/fuzz_ds_ahocorasick/dcaa72e4a5feb858c48f1dba2bd873ce9d278a56
new file mode 100644
index 000000000..6166bb8d9
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/dcaa72e4a5feb858c48f1dba2bd873ce9d278a56
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/dcf505da80812e4be45105b1ba530d11028a20c1 b/fuzz/corpus/fuzz_ds_ahocorasick/dcf505da80812e4be45105b1ba530d11028a20c1
new file mode 100644
index 000000000..bcc720efb
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/dcf505da80812e4be45105b1ba530d11028a20c1
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/ec4e343976a59c139ce33da6a040b1317000afba b/fuzz/corpus/fuzz_ds_ahocorasick/ec4e343976a59c139ce33da6a040b1317000afba
new file mode 100644
index 000000000..9bf7be625
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/ec4e343976a59c139ce33da6a040b1317000afba
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/ed86ab0a4c39e4b992715581675add1272654dc5 b/fuzz/corpus/fuzz_ds_ahocorasick/ed86ab0a4c39e4b992715581675add1272654dc5
new file mode 100644
index 000000000..e6b416dc5
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/ed86ab0a4c39e4b992715581675add1272654dc5
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_ahocorasick/f4205edf785c9e8ed10cf67f22fbad5c1531098c b/fuzz/corpus/fuzz_ds_ahocorasick/f4205edf785c9e8ed10cf67f22fbad5c1531098c
new file mode 100644
index 000000000..df6209ce5
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_ahocorasick/f4205edf785c9e8ed10cf67f22fbad5c1531098c
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/039e60a1ee261f46936205728306da3bbb956a55 b/fuzz/corpus/fuzz_ds_patricia/039e60a1ee261f46936205728306da3bbb956a55
new file mode 100644
index 000000000..37ff6c0f0
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/039e60a1ee261f46936205728306da3bbb956a55
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/05021e284d752717e1138e960b33e87f083ad81d b/fuzz/corpus/fuzz_ds_patricia/05021e284d752717e1138e960b33e87f083ad81d
new file mode 100644
index 000000000..72d35b019
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/05021e284d752717e1138e960b33e87f083ad81d
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/074213b09bc134edd6e4db338af6e99042e07afa b/fuzz/corpus/fuzz_ds_patricia/074213b09bc134edd6e4db338af6e99042e07afa
new file mode 100644
index 000000000..c112586d1
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/074213b09bc134edd6e4db338af6e99042e07afa
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/0925b0ebe5718061127a9644b6b7d93980d14e3d b/fuzz/corpus/fuzz_ds_patricia/0925b0ebe5718061127a9644b6b7d93980d14e3d
new file mode 100644
index 000000000..75b4c3a2a
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/0925b0ebe5718061127a9644b6b7d93980d14e3d
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/0d0f41eb76931c6a969e3b4307e167ce7cb3c928 b/fuzz/corpus/fuzz_ds_patricia/0d0f41eb76931c6a969e3b4307e167ce7cb3c928
new file mode 100644
index 000000000..ddb3725d1
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/0d0f41eb76931c6a969e3b4307e167ce7cb3c928
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/108dffa4f82791086951cf3861790a989be0d19c b/fuzz/corpus/fuzz_ds_patricia/108dffa4f82791086951cf3861790a989be0d19c
new file mode 100644
index 000000000..3da8b6cf6
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/108dffa4f82791086951cf3861790a989be0d19c
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/12ceecaa3ef02cff7acc62405e6287e8dfcdfa8e b/fuzz/corpus/fuzz_ds_patricia/12ceecaa3ef02cff7acc62405e6287e8dfcdfa8e
new file mode 100644
index 000000000..fa47ed2bc
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/12ceecaa3ef02cff7acc62405e6287e8dfcdfa8e
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/13ed262cfca6f60fe738ef6cdfa2b56e5dc2d8da b/fuzz/corpus/fuzz_ds_patricia/13ed262cfca6f60fe738ef6cdfa2b56e5dc2d8da
new file mode 100644
index 000000000..07f49d1ce
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/13ed262cfca6f60fe738ef6cdfa2b56e5dc2d8da
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/14078b526ed4ff0aca7cbfc27cfca5229a5ea0ef b/fuzz/corpus/fuzz_ds_patricia/14078b526ed4ff0aca7cbfc27cfca5229a5ea0ef
new file mode 100644
index 000000000..1828c7a08
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/14078b526ed4ff0aca7cbfc27cfca5229a5ea0ef
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/1a48e3105bc7eaf5069c738e29694916a0dd9a05 b/fuzz/corpus/fuzz_ds_patricia/1a48e3105bc7eaf5069c738e29694916a0dd9a05
new file mode 100644
index 000000000..968c5acab
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/1a48e3105bc7eaf5069c738e29694916a0dd9a05
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/1b33c6dae5a35eee9358136515bbe1ee207a3d49 b/fuzz/corpus/fuzz_ds_patricia/1b33c6dae5a35eee9358136515bbe1ee207a3d49
new file mode 100644
index 000000000..c6e875044
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/1b33c6dae5a35eee9358136515bbe1ee207a3d49
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/1b4035f28517961b07b43eccda628ca079f2f269 b/fuzz/corpus/fuzz_ds_patricia/1b4035f28517961b07b43eccda628ca079f2f269
new file mode 100644
index 000000000..50dc9ff54
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/1b4035f28517961b07b43eccda628ca079f2f269
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/21b1e04ce1c6eb7bdf43328e5c47b15fa44d6f4f b/fuzz/corpus/fuzz_ds_patricia/21b1e04ce1c6eb7bdf43328e5c47b15fa44d6f4f
new file mode 100644
index 000000000..c5db9d0dd
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/21b1e04ce1c6eb7bdf43328e5c47b15fa44d6f4f
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/232ef539cb5481a1c290a69bccc3cff88b56133b b/fuzz/corpus/fuzz_ds_patricia/232ef539cb5481a1c290a69bccc3cff88b56133b
new file mode 100644
index 000000000..31bac70ad
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/232ef539cb5481a1c290a69bccc3cff88b56133b
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/23c63c3e1035ef6568b360ccd14d368754b10b95 b/fuzz/corpus/fuzz_ds_patricia/23c63c3e1035ef6568b360ccd14d368754b10b95
new file mode 100644
index 000000000..09c8eca71
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/23c63c3e1035ef6568b360ccd14d368754b10b95
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/24ccf941ae8c4b95303a148da73d2348619eab9a b/fuzz/corpus/fuzz_ds_patricia/24ccf941ae8c4b95303a148da73d2348619eab9a
new file mode 100644
index 000000000..12d51dac6
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/24ccf941ae8c4b95303a148da73d2348619eab9a
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/2a286cbf9d32f6de497f91438b0f93c831893d06 b/fuzz/corpus/fuzz_ds_patricia/2a286cbf9d32f6de497f91438b0f93c831893d06
new file mode 100644
index 000000000..1bf7effae
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/2a286cbf9d32f6de497f91438b0f93c831893d06
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/2b5709a78e62b162b13853eb9616bd07547447c2 b/fuzz/corpus/fuzz_ds_patricia/2b5709a78e62b162b13853eb9616bd07547447c2
new file mode 100644
index 000000000..7aca64011
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/2b5709a78e62b162b13853eb9616bd07547447c2
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/2c48dce4e16ebb7bbeaa65a5cf0803baa3925a06 b/fuzz/corpus/fuzz_ds_patricia/2c48dce4e16ebb7bbeaa65a5cf0803baa3925a06
new file mode 100644
index 000000000..b663fb5e7
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/2c48dce4e16ebb7bbeaa65a5cf0803baa3925a06
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/2c8502a8cc05c9877c0292567494678a54ee1e38 b/fuzz/corpus/fuzz_ds_patricia/2c8502a8cc05c9877c0292567494678a54ee1e38
new file mode 100644
index 000000000..0816e402e
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/2c8502a8cc05c9877c0292567494678a54ee1e38
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/2cefff96a3039cdbef3c3a6ba41d0b2fe1a24dde b/fuzz/corpus/fuzz_ds_patricia/2cefff96a3039cdbef3c3a6ba41d0b2fe1a24dde
new file mode 100644
index 000000000..986f6b32f
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/2cefff96a3039cdbef3c3a6ba41d0b2fe1a24dde
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/33b543ba66b38ce2c9425c41fd272b50a52f2c3c b/fuzz/corpus/fuzz_ds_patricia/33b543ba66b38ce2c9425c41fd272b50a52f2c3c
new file mode 100644
index 000000000..1e52753db
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/33b543ba66b38ce2c9425c41fd272b50a52f2c3c
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/35ed34b3b9e6b3fa9ad7fd571309b81d6aa625ac b/fuzz/corpus/fuzz_ds_patricia/35ed34b3b9e6b3fa9ad7fd571309b81d6aa625ac
new file mode 100644
index 000000000..2ecf7beb3
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/35ed34b3b9e6b3fa9ad7fd571309b81d6aa625ac
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/3676c7c3052ee8bf7202ab9cdd06f678d8c47266 b/fuzz/corpus/fuzz_ds_patricia/3676c7c3052ee8bf7202ab9cdd06f678d8c47266
new file mode 100644
index 000000000..7ff41e16d
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/3676c7c3052ee8bf7202ab9cdd06f678d8c47266
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/3ace63222163540c03cd16910add24236483139d b/fuzz/corpus/fuzz_ds_patricia/3ace63222163540c03cd16910add24236483139d
new file mode 100644
index 000000000..6d4021771
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/3ace63222163540c03cd16910add24236483139d
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/40225fbb10ed02053853ce61f3561a1c2eaadd8f b/fuzz/corpus/fuzz_ds_patricia/40225fbb10ed02053853ce61f3561a1c2eaadd8f
new file mode 100644
index 000000000..45ac04667
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/40225fbb10ed02053853ce61f3561a1c2eaadd8f
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/47ed8baadac2f946a298d232123e4e84684e9564 b/fuzz/corpus/fuzz_ds_patricia/47ed8baadac2f946a298d232123e4e84684e9564
new file mode 100644
index 000000000..f10228edd
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/47ed8baadac2f946a298d232123e4e84684e9564
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/4cafe1fec188a9d9787d45f2ad97e4afa69e2d0e b/fuzz/corpus/fuzz_ds_patricia/4cafe1fec188a9d9787d45f2ad97e4afa69e2d0e
new file mode 100644
index 000000000..3aa4a13b4
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/4cafe1fec188a9d9787d45f2ad97e4afa69e2d0e
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/521991a268c2e02c6f7be45c9526cfe88b2e3f7f b/fuzz/corpus/fuzz_ds_patricia/521991a268c2e02c6f7be45c9526cfe88b2e3f7f
new file mode 100644
index 000000000..95ee0a99b
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/521991a268c2e02c6f7be45c9526cfe88b2e3f7f
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/530bdb11fe9270a52123f0faeed18c46b5f94fd9 b/fuzz/corpus/fuzz_ds_patricia/530bdb11fe9270a52123f0faeed18c46b5f94fd9
new file mode 100644
index 000000000..72d1cec2d
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/530bdb11fe9270a52123f0faeed18c46b5f94fd9
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/542171cce5b48cb8c86a962d6520cb84f0fd6fbe b/fuzz/corpus/fuzz_ds_patricia/542171cce5b48cb8c86a962d6520cb84f0fd6fbe
new file mode 100644
index 000000000..bf76e104c
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/542171cce5b48cb8c86a962d6520cb84f0fd6fbe
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/5499b8e7401cc066ac1e2f71614795f7bafc40b6 b/fuzz/corpus/fuzz_ds_patricia/5499b8e7401cc066ac1e2f71614795f7bafc40b6
new file mode 100644
index 000000000..8e3964a68
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/5499b8e7401cc066ac1e2f71614795f7bafc40b6
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/54b73015a7a5041d00f84d67d51832d48c2b9907 b/fuzz/corpus/fuzz_ds_patricia/54b73015a7a5041d00f84d67d51832d48c2b9907
new file mode 100644
index 000000000..5b2e13204
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/54b73015a7a5041d00f84d67d51832d48c2b9907
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/563177d397af2ac5b53619e39e6df61f4f98f223 b/fuzz/corpus/fuzz_ds_patricia/563177d397af2ac5b53619e39e6df61f4f98f223
new file mode 100644
index 000000000..ce6bfa3d3
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/563177d397af2ac5b53619e39e6df61f4f98f223
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/57d2337746f797d3f8f0080f309dbb2bd4e0f9cb b/fuzz/corpus/fuzz_ds_patricia/57d2337746f797d3f8f0080f309dbb2bd4e0f9cb
new file mode 100644
index 000000000..a53ee8f6b
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/57d2337746f797d3f8f0080f309dbb2bd4e0f9cb
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/59a871d0625a68595b0e676966b003e5d9bb2cf3 b/fuzz/corpus/fuzz_ds_patricia/59a871d0625a68595b0e676966b003e5d9bb2cf3
new file mode 100644
index 000000000..0d747622e
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/59a871d0625a68595b0e676966b003e5d9bb2cf3
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/5bbea5577dd3884eae9bb1e1979f2794d591f250 b/fuzz/corpus/fuzz_ds_patricia/5bbea5577dd3884eae9bb1e1979f2794d591f250
new file mode 100644
index 000000000..db187d141
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/5bbea5577dd3884eae9bb1e1979f2794d591f250
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/5bc91c208c7b971731b3c02943f98586850d2551 b/fuzz/corpus/fuzz_ds_patricia/5bc91c208c7b971731b3c02943f98586850d2551
new file mode 100644
index 000000000..9d93a1978
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/5bc91c208c7b971731b3c02943f98586850d2551
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/5eb7f8d4ad4d94b04f16fb1f26d5e12c8f8bfbd0 b/fuzz/corpus/fuzz_ds_patricia/5eb7f8d4ad4d94b04f16fb1f26d5e12c8f8bfbd0
new file mode 100644
index 000000000..8224167c8
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/5eb7f8d4ad4d94b04f16fb1f26d5e12c8f8bfbd0
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/61b76c1e66d4c4f6954d7e026afbc3f6eaee1d6b b/fuzz/corpus/fuzz_ds_patricia/61b76c1e66d4c4f6954d7e026afbc3f6eaee1d6b
new file mode 100644
index 000000000..ca7c81001
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/61b76c1e66d4c4f6954d7e026afbc3f6eaee1d6b
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/68765021cb1305cb14753ce1ffb2e6b0ca98f670 b/fuzz/corpus/fuzz_ds_patricia/68765021cb1305cb14753ce1ffb2e6b0ca98f670
new file mode 100644
index 000000000..eac99a324
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/68765021cb1305cb14753ce1ffb2e6b0ca98f670
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/68aa130fbb2ffb67d937d0726e6335332039beb2 b/fuzz/corpus/fuzz_ds_patricia/68aa130fbb2ffb67d937d0726e6335332039beb2
new file mode 100644
index 000000000..c6d7ef4ae
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/68aa130fbb2ffb67d937d0726e6335332039beb2
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/6a5d9322d42293dbbed245169604641ddcc6c736 b/fuzz/corpus/fuzz_ds_patricia/6a5d9322d42293dbbed245169604641ddcc6c736
new file mode 100644
index 000000000..6e42b2aa9
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/6a5d9322d42293dbbed245169604641ddcc6c736
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/7218671551e49d714af5c9a0363debc41f69b07f b/fuzz/corpus/fuzz_ds_patricia/7218671551e49d714af5c9a0363debc41f69b07f
new file mode 100644
index 000000000..ba3469110
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/7218671551e49d714af5c9a0363debc41f69b07f
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/74cc48645729d7afccc86b88ebdc525ec8e8639e b/fuzz/corpus/fuzz_ds_patricia/74cc48645729d7afccc86b88ebdc525ec8e8639e
new file mode 100644
index 000000000..6c61526ad
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/74cc48645729d7afccc86b88ebdc525ec8e8639e
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/74d536c631e3dfd862ab23cebd0027523f752673 b/fuzz/corpus/fuzz_ds_patricia/74d536c631e3dfd862ab23cebd0027523f752673
new file mode 100644
index 000000000..887c6fc43
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/74d536c631e3dfd862ab23cebd0027523f752673
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/75bfb98cd2a35dc1af93c58279ea057d45ea09e6 b/fuzz/corpus/fuzz_ds_patricia/75bfb98cd2a35dc1af93c58279ea057d45ea09e6
new file mode 100644
index 000000000..6358e5a9e
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/75bfb98cd2a35dc1af93c58279ea057d45ea09e6
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/803338ce5f1a96ca01369c8dd4b4ead40b5413ce b/fuzz/corpus/fuzz_ds_patricia/803338ce5f1a96ca01369c8dd4b4ead40b5413ce
new file mode 100644
index 000000000..8be951682
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/803338ce5f1a96ca01369c8dd4b4ead40b5413ce
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/8373dd814b7a7ab13455ec7f5f61c9dba5817060 b/fuzz/corpus/fuzz_ds_patricia/8373dd814b7a7ab13455ec7f5f61c9dba5817060
new file mode 100644
index 000000000..6a23e74a9
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/8373dd814b7a7ab13455ec7f5f61c9dba5817060
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/8b3d2f65163ff2351bf9a5bbf7dfbaeace054246 b/fuzz/corpus/fuzz_ds_patricia/8b3d2f65163ff2351bf9a5bbf7dfbaeace054246
new file mode 100644
index 000000000..acaab6e6a
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/8b3d2f65163ff2351bf9a5bbf7dfbaeace054246
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/8b3fa51f3ea12e0ab1f2e4338f0bbdd167995c98 b/fuzz/corpus/fuzz_ds_patricia/8b3fa51f3ea12e0ab1f2e4338f0bbdd167995c98
new file mode 100644
index 000000000..a799ddcce
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/8b3fa51f3ea12e0ab1f2e4338f0bbdd167995c98
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/8c2f118da7346b51b3a829af9ea7b43a98ce91f0 b/fuzz/corpus/fuzz_ds_patricia/8c2f118da7346b51b3a829af9ea7b43a98ce91f0
new file mode 100644
index 000000000..a53fb9a71
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/8c2f118da7346b51b3a829af9ea7b43a98ce91f0
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/8dc1dd8e66922ff701c798bbe91d19b37f58495f b/fuzz/corpus/fuzz_ds_patricia/8dc1dd8e66922ff701c798bbe91d19b37f58495f
new file mode 100644
index 000000000..6084afb47
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/8dc1dd8e66922ff701c798bbe91d19b37f58495f
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/8e77a1ae0ef5ee0974856f2a0318b46e98f0e4f9 b/fuzz/corpus/fuzz_ds_patricia/8e77a1ae0ef5ee0974856f2a0318b46e98f0e4f9
new file mode 100644
index 000000000..c3a15d37a
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/8e77a1ae0ef5ee0974856f2a0318b46e98f0e4f9
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/8f2f7f037ede54b9812983536b8a973db7dfe5ec b/fuzz/corpus/fuzz_ds_patricia/8f2f7f037ede54b9812983536b8a973db7dfe5ec
new file mode 100644
index 000000000..f6ca2f3d2
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/8f2f7f037ede54b9812983536b8a973db7dfe5ec
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/8fb9128d8833cb0e1b40c92bf43968b8b4bb8b7c b/fuzz/corpus/fuzz_ds_patricia/8fb9128d8833cb0e1b40c92bf43968b8b4bb8b7c
new file mode 100644
index 000000000..bbf93107b
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/8fb9128d8833cb0e1b40c92bf43968b8b4bb8b7c
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/8fc6b683859c8a3ca1a2cd09afb65683db6925ba b/fuzz/corpus/fuzz_ds_patricia/8fc6b683859c8a3ca1a2cd09afb65683db6925ba
new file mode 100644
index 000000000..52568c78b
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/8fc6b683859c8a3ca1a2cd09afb65683db6925ba
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/921441816405adb82a95beb9e829eb2d07364e39 b/fuzz/corpus/fuzz_ds_patricia/921441816405adb82a95beb9e829eb2d07364e39
new file mode 100644
index 000000000..7a9455885
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/921441816405adb82a95beb9e829eb2d07364e39
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/92e0eb0d2887706e28f2092373d64be988f2348f b/fuzz/corpus/fuzz_ds_patricia/92e0eb0d2887706e28f2092373d64be988f2348f
new file mode 100644
index 000000000..16fddb4f0
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/92e0eb0d2887706e28f2092373d64be988f2348f
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/92fb55b38af871f214e5487274d61262945e87ab b/fuzz/corpus/fuzz_ds_patricia/92fb55b38af871f214e5487274d61262945e87ab
new file mode 100644
index 000000000..12332b87e
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/92fb55b38af871f214e5487274d61262945e87ab
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/960262916af52bd22c72f32983b4158c80d9bc14 b/fuzz/corpus/fuzz_ds_patricia/960262916af52bd22c72f32983b4158c80d9bc14
new file mode 100644
index 000000000..2e4106d19
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/960262916af52bd22c72f32983b4158c80d9bc14
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/96d3cd59bac131d83c46fa6d6c6ce0868d83e981 b/fuzz/corpus/fuzz_ds_patricia/96d3cd59bac131d83c46fa6d6c6ce0868d83e981
new file mode 100644
index 000000000..09b92110d
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/96d3cd59bac131d83c46fa6d6c6ce0868d83e981
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/977a02add85824845858b8587906157cf5fc1dfe b/fuzz/corpus/fuzz_ds_patricia/977a02add85824845858b8587906157cf5fc1dfe
new file mode 100644
index 000000000..49ec2a4a1
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/977a02add85824845858b8587906157cf5fc1dfe
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/9cd8475553e593641897c96d7abd7463f49c2682 b/fuzz/corpus/fuzz_ds_patricia/9cd8475553e593641897c96d7abd7463f49c2682
new file mode 100644
index 000000000..886a24de0
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/9cd8475553e593641897c96d7abd7463f49c2682
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/9d598f7fa3cdf08e373f27caf61c012aae75ce4d b/fuzz/corpus/fuzz_ds_patricia/9d598f7fa3cdf08e373f27caf61c012aae75ce4d
new file mode 100644
index 000000000..d3ba8fa10
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/9d598f7fa3cdf08e373f27caf61c012aae75ce4d
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/9fa60713c5ae1f3726ae70fd4e8c230c27e10a7e b/fuzz/corpus/fuzz_ds_patricia/9fa60713c5ae1f3726ae70fd4e8c230c27e10a7e
new file mode 100644
index 000000000..0dcd71b1a
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/9fa60713c5ae1f3726ae70fd4e8c230c27e10a7e
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/a7302ca6b5de89a8840072d6bc28184881e7e5c7 b/fuzz/corpus/fuzz_ds_patricia/a7302ca6b5de89a8840072d6bc28184881e7e5c7
new file mode 100644
index 000000000..6d257363b
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/a7302ca6b5de89a8840072d6bc28184881e7e5c7
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/a8188d5148159ccc511bfc90bf837fa93b6cbf94 b/fuzz/corpus/fuzz_ds_patricia/a8188d5148159ccc511bfc90bf837fa93b6cbf94
new file mode 100644
index 000000000..8c060c3bc
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/a8188d5148159ccc511bfc90bf837fa93b6cbf94
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/a8d46b93c9c5bb3a68e57a8699b9db73631c30ed b/fuzz/corpus/fuzz_ds_patricia/a8d46b93c9c5bb3a68e57a8699b9db73631c30ed
new file mode 100644
index 000000000..28147c4f8
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/a8d46b93c9c5bb3a68e57a8699b9db73631c30ed
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/aa0a7045de571ac72c4bef04373965d3c062a802 b/fuzz/corpus/fuzz_ds_patricia/aa0a7045de571ac72c4bef04373965d3c062a802
new file mode 100644
index 000000000..f21af4514
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/aa0a7045de571ac72c4bef04373965d3c062a802
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/ad2dc31bea9499dbc2450df00eac38ddd37d17c4 b/fuzz/corpus/fuzz_ds_patricia/ad2dc31bea9499dbc2450df00eac38ddd37d17c4
new file mode 100644
index 000000000..6b288c998
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/ad2dc31bea9499dbc2450df00eac38ddd37d17c4
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/ade86d0ebba9baf5243f184cbb5a4b5cc6d65386 b/fuzz/corpus/fuzz_ds_patricia/ade86d0ebba9baf5243f184cbb5a4b5cc6d65386
new file mode 100644
index 000000000..d1eff3b46
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/ade86d0ebba9baf5243f184cbb5a4b5cc6d65386
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/b042b35030eb170c6507e14dd6f00a6e1b670612 b/fuzz/corpus/fuzz_ds_patricia/b042b35030eb170c6507e14dd6f00a6e1b670612
new file mode 100644
index 000000000..cf2b6370a
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/b042b35030eb170c6507e14dd6f00a6e1b670612
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/b688eaaf60534a0470b8a153c71dd52f6acde043 b/fuzz/corpus/fuzz_ds_patricia/b688eaaf60534a0470b8a153c71dd52f6acde043
new file mode 100644
index 000000000..84a29ac97
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/b688eaaf60534a0470b8a153c71dd52f6acde043
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/b78d8c40070c22d7c4dd34b6f56b256a51d60ca6 b/fuzz/corpus/fuzz_ds_patricia/b78d8c40070c22d7c4dd34b6f56b256a51d60ca6
new file mode 100644
index 000000000..e7b835099
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/b78d8c40070c22d7c4dd34b6f56b256a51d60ca6
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/bafbbb41dfbb7cc1be135d34ad282d54d14fb308 b/fuzz/corpus/fuzz_ds_patricia/bafbbb41dfbb7cc1be135d34ad282d54d14fb308
new file mode 100644
index 000000000..8fbae7c0c
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/bafbbb41dfbb7cc1be135d34ad282d54d14fb308
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/c227d679049293ede4340c485e8c9035abe25c21 b/fuzz/corpus/fuzz_ds_patricia/c227d679049293ede4340c485e8c9035abe25c21
new file mode 100644
index 000000000..47f4daccf
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/c227d679049293ede4340c485e8c9035abe25c21
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/c4481c47f49eb89bc871184b747bd351ca128db8 b/fuzz/corpus/fuzz_ds_patricia/c4481c47f49eb89bc871184b747bd351ca128db8
new file mode 100644
index 000000000..d9d23731b
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/c4481c47f49eb89bc871184b747bd351ca128db8
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/c44e56f98bbb7e90638c8813540b389f0b583a61 b/fuzz/corpus/fuzz_ds_patricia/c44e56f98bbb7e90638c8813540b389f0b583a61
new file mode 100644
index 000000000..d8349b25c
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/c44e56f98bbb7e90638c8813540b389f0b583a61
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/c59c6050c23fd067f7863a1849278b9f399d6332 b/fuzz/corpus/fuzz_ds_patricia/c59c6050c23fd067f7863a1849278b9f399d6332
new file mode 100644
index 000000000..1c87d0c77
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/c59c6050c23fd067f7863a1849278b9f399d6332
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/cb4c0a2cb620f140280597591ece04e5fd852dc7 b/fuzz/corpus/fuzz_ds_patricia/cb4c0a2cb620f140280597591ece04e5fd852dc7
new file mode 100644
index 000000000..d08a84856
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/cb4c0a2cb620f140280597591ece04e5fd852dc7
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/ce9047b351cd0a5eaffcbb487b64cab99a19522e b/fuzz/corpus/fuzz_ds_patricia/ce9047b351cd0a5eaffcbb487b64cab99a19522e
new file mode 100644
index 000000000..0828cda24
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/ce9047b351cd0a5eaffcbb487b64cab99a19522e
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/cf6301c7730c893724a36740fe9bbf46ac5e002e b/fuzz/corpus/fuzz_ds_patricia/cf6301c7730c893724a36740fe9bbf46ac5e002e
new file mode 100644
index 000000000..fde3f45dd
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/cf6301c7730c893724a36740fe9bbf46ac5e002e
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/d0b0b56e3a3b9092ab75b212aa07777c48013050 b/fuzz/corpus/fuzz_ds_patricia/d0b0b56e3a3b9092ab75b212aa07777c48013050
new file mode 100644
index 000000000..8d68c7ff3
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/d0b0b56e3a3b9092ab75b212aa07777c48013050
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/d27f235a75d3347f7554ad049009492571352d18 b/fuzz/corpus/fuzz_ds_patricia/d27f235a75d3347f7554ad049009492571352d18
new file mode 100644
index 000000000..7cd934348
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/d27f235a75d3347f7554ad049009492571352d18
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/d35119bcdc064dfd438dd5dc943a7d6e64b118bc b/fuzz/corpus/fuzz_ds_patricia/d35119bcdc064dfd438dd5dc943a7d6e64b118bc
new file mode 100644
index 000000000..01e5bdb5a
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/d35119bcdc064dfd438dd5dc943a7d6e64b118bc
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/d45bf39f094b41cb64954cb70c9266a4fe02dc17 b/fuzz/corpus/fuzz_ds_patricia/d45bf39f094b41cb64954cb70c9266a4fe02dc17
new file mode 100644
index 000000000..5a71ce50e
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/d45bf39f094b41cb64954cb70c9266a4fe02dc17
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/d5a267a9438f0bddf91a25c6606d8debf4672d76 b/fuzz/corpus/fuzz_ds_patricia/d5a267a9438f0bddf91a25c6606d8debf4672d76
new file mode 100644
index 000000000..1353a0ae7
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/d5a267a9438f0bddf91a25c6606d8debf4672d76
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/d5c613293379f84fd9d30da74953c74336b3efc7 b/fuzz/corpus/fuzz_ds_patricia/d5c613293379f84fd9d30da74953c74336b3efc7
new file mode 100644
index 000000000..684fc6ee0
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/d5c613293379f84fd9d30da74953c74336b3efc7
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/dd83ecad869aafeec00dae649b93643bd85549fc b/fuzz/corpus/fuzz_ds_patricia/dd83ecad869aafeec00dae649b93643bd85549fc
new file mode 100644
index 000000000..f0e40e224
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/dd83ecad869aafeec00dae649b93643bd85549fc
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/df36cc5d101b59b8e577a8260dbc22e99749dc7b b/fuzz/corpus/fuzz_ds_patricia/df36cc5d101b59b8e577a8260dbc22e99749dc7b
new file mode 100644
index 000000000..53926299f
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/df36cc5d101b59b8e577a8260dbc22e99749dc7b
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/e0b35272e42e26f2396fb30f2601afebeec4760b b/fuzz/corpus/fuzz_ds_patricia/e0b35272e42e26f2396fb30f2601afebeec4760b
new file mode 100644
index 000000000..378cbfeb1
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/e0b35272e42e26f2396fb30f2601afebeec4760b
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/e3d59cfa962fbddcb2d2bd8f834c05f66a7c6336 b/fuzz/corpus/fuzz_ds_patricia/e3d59cfa962fbddcb2d2bd8f834c05f66a7c6336
new file mode 100644
index 000000000..0964d1f09
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/e3d59cfa962fbddcb2d2bd8f834c05f66a7c6336
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/e9ae65ef89f69cde2b8e5b3e2ce14ac98b2c2289 b/fuzz/corpus/fuzz_ds_patricia/e9ae65ef89f69cde2b8e5b3e2ce14ac98b2c2289
new file mode 100644
index 000000000..311f15263
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/e9ae65ef89f69cde2b8e5b3e2ce14ac98b2c2289
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/ece0c9b5f1e118ad7960ee974fbc634b44b830e1 b/fuzz/corpus/fuzz_ds_patricia/ece0c9b5f1e118ad7960ee974fbc634b44b830e1
new file mode 100644
index 000000000..bca5f1111
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/ece0c9b5f1e118ad7960ee974fbc634b44b830e1
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/ef6a236812a8235565a4c606ea2c5a9341e4aa41 b/fuzz/corpus/fuzz_ds_patricia/ef6a236812a8235565a4c606ea2c5a9341e4aa41
new file mode 100644
index 000000000..116c41f38
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/ef6a236812a8235565a4c606ea2c5a9341e4aa41
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/efb7a29db7ce24f71b969ee68eb0af750afb2b4c b/fuzz/corpus/fuzz_ds_patricia/efb7a29db7ce24f71b969ee68eb0af750afb2b4c
new file mode 100644
index 000000000..d2bd33745
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/efb7a29db7ce24f71b969ee68eb0af750afb2b4c
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/f1bb760d7ecb5d34e982e43eea266a3ca22778a4 b/fuzz/corpus/fuzz_ds_patricia/f1bb760d7ecb5d34e982e43eea266a3ca22778a4
new file mode 100644
index 000000000..784bada17
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/f1bb760d7ecb5d34e982e43eea266a3ca22778a4
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/f24cf8ce6cf0a9e00e9fcef913843d439792379c b/fuzz/corpus/fuzz_ds_patricia/f24cf8ce6cf0a9e00e9fcef913843d439792379c
new file mode 100644
index 000000000..67fe193c4
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/f24cf8ce6cf0a9e00e9fcef913843d439792379c
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/f415309e92385cbd8c7d1c6a9a7505e933cb2acf b/fuzz/corpus/fuzz_ds_patricia/f415309e92385cbd8c7d1c6a9a7505e933cb2acf
new file mode 100644
index 000000000..ebe797d0b
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/f415309e92385cbd8c7d1c6a9a7505e933cb2acf
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/f4d7ba52332b71166ca952780db341c5645f04b3 b/fuzz/corpus/fuzz_ds_patricia/f4d7ba52332b71166ca952780db341c5645f04b3
new file mode 100644
index 000000000..643e1c657
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/f4d7ba52332b71166ca952780db341c5645f04b3
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/f5f68d29ff553b4e63a3f0bb69e4c940bc46c291 b/fuzz/corpus/fuzz_ds_patricia/f5f68d29ff553b4e63a3f0bb69e4c940bc46c291
new file mode 100644
index 000000000..f67a60d06
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/f5f68d29ff553b4e63a3f0bb69e4c940bc46c291
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/f9cce96c161f401d73f04ef031404a885eb5da37 b/fuzz/corpus/fuzz_ds_patricia/f9cce96c161f401d73f04ef031404a885eb5da37
new file mode 100644
index 000000000..2f0142c4c
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/f9cce96c161f401d73f04ef031404a885eb5da37
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/ff72929db2b1fdacd24b1aed103bb307bbac7d7f b/fuzz/corpus/fuzz_ds_patricia/ff72929db2b1fdacd24b1aed103bb307bbac7d7f
new file mode 100644
index 000000000..eefeedb2e
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/ff72929db2b1fdacd24b1aed103bb307bbac7d7f
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_patricia/ff82aaaf9375f24492e1bc709bf1518b827fc83d b/fuzz/corpus/fuzz_ds_patricia/ff82aaaf9375f24492e1bc709bf1518b827fc83d
new file mode 100644
index 000000000..648a4f052
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_patricia/ff82aaaf9375f24492e1bc709bf1518b827fc83d
Binary files differ
diff --git a/fuzz/fuzz_alg_bins.cpp b/fuzz/fuzz_alg_bins.cpp
new file mode 100644
index 000000000..221a081a3
--- /dev/null
+++ b/fuzz/fuzz_alg_bins.cpp
@@ -0,0 +1,92 @@
+#include "ndpi_api.h"
+#include "fuzz_common_code.h"
+
+#include <stdint.h>
+#include <stdio.h>
+#include "fuzzer/FuzzedDataProvider.h"
+
+struct ndpi_detection_module_struct *ndpi_info_mod = NULL;
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ FuzzedDataProvider fuzzed_data(data, size);
+ u_int16_t j, i, num_iteration;
+ struct ndpi_bin b, *b_cloned, *bins;
+ u_int16_t num_bins, num_cluster_ids, num_element;
+ enum ndpi_bin_family family;
+ u_int16_t *cluster_ids;
+
+ /* Just to have some data */
+ if(fuzzed_data.remaining_bytes() < 2048)
+ return -1;
+
+ /* We don't really need the detection module, but this way we can enable
+ memory allocation failures */
+ if (ndpi_info_mod == NULL) {
+ fuzz_init_detection_module(&ndpi_info_mod, 0);
+ }
+
+ num_bins = fuzzed_data.ConsumeIntegral<u_int16_t>();
+ family = fuzzed_data.ConsumeEnum<enum ndpi_bin_family>();
+
+ ndpi_init_bin(&b, family, num_bins);
+
+ num_iteration = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ for (i = 0; i < num_iteration; i++)
+ ndpi_inc_bin(&b, fuzzed_data.ConsumeIntegral<u_int16_t>(),
+ fuzzed_data.ConsumeIntegral<u_int64_t>());
+
+ b_cloned = ndpi_clone_bin(&b);
+
+ ndpi_bin_similarity(&b, b_cloned, fuzzed_data.ConsumeBool(),
+ fuzzed_data.ConsumeFloatingPointInRange<float>(0, 1));
+
+ for (i = 0; i < num_iteration; i++)
+ ndpi_get_bin_value(&b, fuzzed_data.ConsumeIntegral<u_int16_t>());
+
+ ndpi_reset_bin(&b);
+
+ for (i = 0; i < num_iteration; i++)
+ ndpi_get_bin_value(&b, fuzzed_data.ConsumeIntegral<u_int16_t>());
+
+ for (i = 0; i < num_iteration; i++)
+ ndpi_set_bin(b_cloned, fuzzed_data.ConsumeIntegral<u_int16_t>(),
+ fuzzed_data.ConsumeIntegral<u_int64_t>());
+
+ ndpi_bin_similarity(&b, b_cloned, fuzzed_data.ConsumeBool(),
+ fuzzed_data.ConsumeFloatingPointInRange<float>(0, 1));
+
+ ndpi_normalize_bin(&b);
+ ndpi_normalize_bin(b_cloned);
+
+ ndpi_free_bin(&b);
+ ndpi_free_bin(b_cloned);
+ ndpi_free(b_cloned);
+
+ /* Cluster */
+
+ num_bins = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ num_element = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ num_cluster_ids = fuzzed_data.ConsumeIntegral<u_int16_t>();
+ bins = (struct ndpi_bin *)ndpi_malloc(sizeof(struct ndpi_bin) * num_bins);
+ cluster_ids = (u_int16_t *)ndpi_malloc(sizeof(u_int16_t) * num_bins);
+
+ if (bins && cluster_ids) {
+ for (i = 0; i < num_bins; i++) {
+ ndpi_init_bin(&bins[i], ndpi_bin_family64 /* Use 64 bit to avoid overlaps */,
+ num_element);
+ num_iteration = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ for (j = 0; j < num_iteration; j++) {
+ ndpi_set_bin(&bins[i], fuzzed_data.ConsumeIntegralInRange(0, num_element + 1),
+ fuzzed_data.ConsumeIntegral<u_int64_t>());
+ }
+ }
+ ndpi_cluster_bins(bins, num_bins, num_cluster_ids, cluster_ids, NULL);
+ }
+
+ ndpi_free(cluster_ids);
+ for (i = 0; i < num_bins; i++)
+ ndpi_free_bin(&bins[i]);
+ ndpi_free(bins);
+
+ return 0;
+}
diff --git a/fuzz/fuzz_alg_hll.cpp b/fuzz/fuzz_alg_hll.cpp
new file mode 100644
index 000000000..85733da63
--- /dev/null
+++ b/fuzz/fuzz_alg_hll.cpp
@@ -0,0 +1,46 @@
+#include "ndpi_api.h"
+#include "fuzz_common_code.h"
+
+#include <stdint.h>
+#include <stdio.h>
+#include "fuzzer/FuzzedDataProvider.h"
+
+struct ndpi_detection_module_struct *ndpi_info_mod = NULL;
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ FuzzedDataProvider fuzzed_data(data, size);
+ u_int16_t i, num_iteration;
+ struct ndpi_hll hll;
+
+ /* Just to have some data */
+ if(fuzzed_data.remaining_bytes() < 2048)
+ return -1;
+
+ /* We don't really need the detection module, but this way we can enable
+ memory allocation failures */
+ if (ndpi_info_mod == NULL) {
+ fuzz_init_detection_module(&ndpi_info_mod, 0);
+ }
+
+ ndpi_hll_init(&hll, fuzzed_data.ConsumeIntegral<u_int16_t>());
+
+ num_iteration = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ for (i = 0; i < num_iteration; i++)
+ ndpi_hll_add_number(&hll, fuzzed_data.ConsumeIntegral<u_int32_t>());
+
+ ndpi_hll_count(&hll);
+
+ ndpi_hll_reset(&hll);
+
+ num_iteration = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ for (i = 0; i < num_iteration; i++) {
+ std::vector<int8_t>data = fuzzed_data.ConsumeBytes<int8_t>(fuzzed_data.ConsumeIntegral<u_int8_t>());
+ ndpi_hll_add(&hll, (char *)data.data(), data.size());
+ }
+
+ ndpi_hll_count(&hll);
+
+ ndpi_hll_destroy(&hll);
+
+ return 0;
+}
diff --git a/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp b/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp
new file mode 100644
index 000000000..d1fe1a566
--- /dev/null
+++ b/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp
@@ -0,0 +1,98 @@
+#include "ndpi_api.h"
+#include "fuzz_common_code.h"
+
+#include <stdint.h>
+#include <stdio.h>
+#include "fuzzer/FuzzedDataProvider.h"
+
+struct ndpi_detection_module_struct *ndpi_info_mod = NULL;
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ FuzzedDataProvider fuzzed_data(data, size);
+ u_int16_t i, num_values, num_learning_values, max_series_len;
+ struct ndpi_hw_struct hw;
+ struct ndpi_rsi_struct rsi;
+ struct ndpi_analyze_struct *a;
+ int rc_hw, rc_rsi;
+ u_int16_t num_periods;
+ u_int8_t additive_seeasonal;
+ double alpha, beta, gamma, forecast, confidence_band;
+ float significance;
+ u_int32_t *values;
+ bool *outliers;
+
+ /* Use the same (integral) dataset to peform: RSI, Data analysis, HW and outliers */
+
+ /* Just to have some data */
+ if(fuzzed_data.remaining_bytes() < 1024)
+ return -1;
+
+ /* We don't really need the detection module, but this way we can enable
+ memory allocation failures */
+ if (ndpi_info_mod == NULL) {
+ fuzz_init_detection_module(&ndpi_info_mod, 0);
+ }
+
+ /* Data set */
+ num_values = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ values = (u_int32_t *)ndpi_malloc(sizeof(u_int32_t) * num_values);
+ outliers = (bool *)ndpi_malloc(sizeof(bool) * num_values);
+ if (!values || !outliers) {
+ ndpi_free(values);
+ ndpi_free(outliers);
+ return -1;
+ }
+ for (i = 0; i < num_values; i++)
+ values[i] = fuzzed_data.ConsumeIntegral<u_int32_t>();
+
+ /* Init HW */
+ num_periods = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ additive_seeasonal = fuzzed_data.ConsumeBool();
+ 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);
+ rc_hw = ndpi_hw_init(&hw, num_periods, additive_seeasonal,
+ alpha, beta, gamma, significance);
+ /* Init RSI */
+ num_learning_values = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ rc_rsi = ndpi_alloc_rsi(&rsi, num_learning_values);
+
+ /* Init Data Analysis */
+ max_series_len = fuzzed_data.ConsumeIntegral<u_int16_t>();
+ a = ndpi_alloc_data_analysis(max_series_len);
+
+ /* Calculate! */
+ for (i = 0; i < num_values; i++) {
+ if (rc_hw == 0)
+ ndpi_hw_add_value(&hw, values[i], &forecast, &confidence_band);
+ if (rc_rsi == 0)
+ ndpi_rsi_add_value(&rsi, values[i]);
+ ndpi_data_add_value(a, values[i]);
+ }
+ ndpi_find_outliers(values, outliers, num_values);
+
+ /* Data analysis stuff */
+ ndpi_data_average(a);
+ ndpi_data_mean(a);
+ ndpi_data_variance(a);
+ ndpi_data_stddev(a);
+ ndpi_data_min(a);
+ ndpi_data_max(a);
+ ndpi_data_window_average(a);
+ ndpi_data_window_variance(a);
+ ndpi_data_window_stddev(a);
+ ndpi_data_entropy(a);
+ ndpi_reset_data_analysis(a);
+
+ /* Done. Free */
+ if (rc_hw == 0)
+ ndpi_hw_free(&hw);
+ if (rc_rsi == 0)
+ ndpi_free_rsi(&rsi);
+ ndpi_free_data_analysis(a, 1);
+ ndpi_free(values);
+ ndpi_free(outliers);
+
+ return 0;
+}
diff --git a/fuzz/fuzz_alg_jitter.cpp b/fuzz/fuzz_alg_jitter.cpp
new file mode 100644
index 000000000..8fb4d85db
--- /dev/null
+++ b/fuzz/fuzz_alg_jitter.cpp
@@ -0,0 +1,38 @@
+#include "ndpi_api.h"
+#include "fuzz_common_code.h"
+
+#include <stdint.h>
+#include <stdio.h>
+#include "fuzzer/FuzzedDataProvider.h"
+
+struct ndpi_detection_module_struct *ndpi_info_mod = NULL;
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ FuzzedDataProvider fuzzed_data(data, size);
+ u_int16_t i, num_iteration, num_learning_values;
+ struct ndpi_jitter_struct s;
+ int rc;
+
+ /* Just to have some data */
+ if(fuzzed_data.remaining_bytes() < 1024)
+ return -1;
+
+ /* We don't really need the detection module, but this way we can enable
+ memory allocation failures */
+ if (ndpi_info_mod == NULL) {
+ fuzz_init_detection_module(&ndpi_info_mod, 0);
+ }
+
+ num_learning_values = fuzzed_data.ConsumeIntegral<u_int16_t>();
+ rc = ndpi_jitter_init(&s, num_learning_values);
+
+ if (rc == 0) {
+ num_iteration = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ for (i = 0; i < num_iteration; i++)
+ ndpi_jitter_add_value(&s, fuzzed_data.ConsumeFloatingPoint<float>());
+
+ ndpi_jitter_free(&s);
+ }
+
+ return 0;
+}
diff --git a/fuzz/fuzz_alg_ses_des.cpp b/fuzz/fuzz_alg_ses_des.cpp
new file mode 100644
index 000000000..c3025b627
--- /dev/null
+++ b/fuzz/fuzz_alg_ses_des.cpp
@@ -0,0 +1,52 @@
+#include "ndpi_api.h"
+#include "fuzz_common_code.h"
+
+#include <stdint.h>
+#include <stdio.h>
+#include "fuzzer/FuzzedDataProvider.h"
+
+struct ndpi_detection_module_struct *ndpi_info_mod = NULL;
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ FuzzedDataProvider fuzzed_data(data, size);
+ u_int16_t i, num_iteration;
+ struct ndpi_ses_struct s;
+ struct ndpi_des_struct d;
+ int rc_ses, rc_des;
+ double forecast, confidence_band, *values, value;
+ float significance, alpha_ses, alpha_des, beta;
+
+ /* Just to have some data */
+ if(fuzzed_data.remaining_bytes() < 2048)
+ return -1;
+
+ /* We don't really need the detection module, but this way we can enable
+ memory allocation failures */
+ if (ndpi_info_mod == NULL) {
+ fuzz_init_detection_module(&ndpi_info_mod, 0);
+ }
+
+ /* Training */
+ num_iteration = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ values = (double *)ndpi_malloc(sizeof(double) * num_iteration);
+ for (i = 0; i < num_iteration; i++)
+ values[i] = fuzzed_data.ConsumeFloatingPoint<double>();
+ ndpi_ses_fitting(values, num_iteration, &alpha_ses);
+ ndpi_des_fitting(values, num_iteration, &alpha_des, &beta);
+ ndpi_free(values);
+
+ significance = fuzzed_data.ConsumeFloatingPointInRange<float>(0, 1);
+ rc_ses = ndpi_ses_init(&s, alpha_ses, significance);
+ rc_des = ndpi_des_init(&d, alpha_des, beta, significance);
+
+ num_iteration = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ for (i = 0; i < num_iteration; i++) {
+ value = fuzzed_data.ConsumeFloatingPoint<double>();
+ if (rc_ses == 0)
+ ndpi_ses_add_value(&s, value, &forecast, &confidence_band);
+ if (rc_des == 0)
+ ndpi_des_add_value(&d, value, &forecast, &confidence_band);
+ }
+
+ return 0;
+}
diff --git a/fuzz/fuzz_ds_ahocorasick.cpp b/fuzz/fuzz_ds_ahocorasick.cpp
new file mode 100644
index 000000000..168092667
--- /dev/null
+++ b/fuzz/fuzz_ds_ahocorasick.cpp
@@ -0,0 +1,124 @@
+#include "ndpi_api.h"
+#include "../src/lib/third_party/include/ahocorasick.h"
+#include "fuzz_common_code.h"
+
+#include <stdint.h>
+#include <stdio.h>
+#include <assert.h>
+#include "fuzzer/FuzzedDataProvider.h"
+
+extern "C" int ac_domain_match_handler(AC_MATCH_t *m, AC_TEXT_t *txt, AC_REP_t *match);
+
+
+struct ndpi_detection_module_struct *ndpi_info_mod = NULL;
+
+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;
+ AC_AUTOMATA_t *a;
+ MATCH_CALLBACK_f mc;
+ struct ac_stats stats;
+ AC_PATTERN_t ac_pattern;
+ char *value_dup, *value_added;
+ AC_REP_t match;
+ AC_TEXT_t ac_input_text;
+ FILE *f;
+
+ /* TODO: real string instead of random bytes */
+
+ /* Just to have some data */
+ if (fuzzed_data.remaining_bytes() < 1024)
+ return -1;
+
+ /* We don't really need the detection module, but this way we can enable
+ memory allocation failures */
+ if (ndpi_info_mod == NULL) {
+ fuzz_init_detection_module(&ndpi_info_mod, 0);
+ }
+
+ if (fuzzed_data.ConsumeBool())
+ mc = ac_domain_match_handler;
+ else
+ mc = NULL;
+
+ a = ac_automata_init(mc);
+
+ if (fuzzed_data.ConsumeBool())
+ ac_automata_feature(a, AC_FEATURE_DEBUG);
+ if (fuzzed_data.ConsumeBool())
+ ac_automata_feature(a, AC_FEATURE_LC);
+ if (fuzzed_data.ConsumeBool())
+ ac_automata_feature(a, AC_FEATURE_NO_ROOT_RANGE);
+
+ if (fuzzed_data.ConsumeBool())
+ ac_automata_name(a, (char *)fuzzed_data.ConsumeRandomLengthString(32).c_str(),
+ fuzzed_data.ConsumeBool());
+
+ num_iteration = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ for (i = 0; i < num_iteration; i++) {
+ memset(&ac_pattern, 0, sizeof(ac_pattern));
+
+ std::string value = fuzzed_data.ConsumeRandomLengthString(64);
+ value_dup = ndpi_strdup(value.c_str());
+ if (!value_dup)
+ continue;
+
+ ac_pattern.astring = value_dup;
+ ac_pattern.length = strlen(value_dup);
+ ac_pattern.rep.number = 0;
+ ac_pattern.rep.category = 0;
+ ac_pattern.rep.breed = 0;
+ ac_pattern.rep.level = fuzzed_data.ConsumeIntegralInRange(0, 2);
+ ac_pattern.rep.at_end = fuzzed_data.ConsumeBool();
+ ac_pattern.rep.dot = memchr(value_dup, '.', strlen(value_dup)) != NULL;
+
+ if (ac_automata_add(a, &ac_pattern) != ACERR_SUCCESS) {
+ ndpi_free(value_dup);
+ } else {
+ /* Keep one random string really added */
+ if (is_added == 0 && fuzzed_data.ConsumeBool()) {
+ value_added = ndpi_strdup(value_dup);
+ if (value_added)
+ is_added = 1;
+ }
+ }
+ }
+
+ if (fuzzed_data.ConsumeBool())
+ ac_automata_finalize(a);
+
+ /* "Random" search */
+ num_iteration = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ for (i = 0; i < num_iteration; i++) {
+ std::string value = fuzzed_data.ConsumeRandomLengthString(64);
+ value_dup = ndpi_strdup(value.c_str());
+ if (!value_dup)
+ continue;
+
+ ac_input_text.astring = value_dup;
+ ac_input_text.length = strlen(value_dup);
+ ac_input_text.option = 0;
+ ac_automata_search(a, &ac_input_text, &match);
+
+ ndpi_free(value_dup);
+ }
+ /* Search of an added node */
+ if (is_added) {
+ ac_input_text.astring = value_added;
+ ac_input_text.length = strlen(value_added);
+ ac_input_text.option = 0;
+
+ ac_automata_search(a, &ac_input_text, &match);
+ ndpi_free(value_added);
+ }
+
+ f = fopen("/dev/null", "w");
+ ac_automata_dump(a, f);
+ fclose(f);
+
+ ac_automata_get_stats(a, &stats);
+
+ ac_automata_release(a, 1);
+
+ return 0;
+}
diff --git a/fuzz/fuzz_ds_patricia.cpp b/fuzz/fuzz_ds_patricia.cpp
new file mode 100644
index 000000000..ba72dce5c
--- /dev/null
+++ b/fuzz/fuzz_ds_patricia.cpp
@@ -0,0 +1,161 @@
+#include "ndpi_api.h"
+#include "fuzz_common_code.h"
+
+#include <stdint.h>
+#include <stdio.h>
+#include <assert.h>
+#include "fuzzer/FuzzedDataProvider.h"
+
+struct ndpi_detection_module_struct *ndpi_info_mod = NULL;
+
+static void free_ptree_data(void *data) {
+ /* Nothing to do */
+ assert(data);
+}
+static void process_ptree_data(ndpi_prefix_t *prefix, void *data) {
+ /* Nothing to do */
+ assert(prefix);
+ assert(data == NULL);
+}
+static void process3_ptree_data(ndpi_patricia_node_t *node, void *data, void *user_data) {
+ /* Nothing to do */
+ assert(node);
+ assert(data == NULL);
+ assert(user_data == NULL);
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ FuzzedDataProvider fuzzed_data(data, size);
+ u_int16_t i, num_iteration, ip_len;
+ ndpi_patricia_tree_t *p, *p_cloned;
+ u_int16_t maxbits;
+ int is_ipv6, is_added = 0;
+ ndpi_prefix_t prefix, prefix_added;
+ u_char *ip;
+ ndpi_patricia_node_t *node;
+
+ /* Just to have some data */
+ if (fuzzed_data.remaining_bytes() < 1024)
+ return -1;
+
+ /* We don't really need the detection module, but this way we can enable
+ memory allocation failures */
+ if (ndpi_info_mod == NULL) {
+ fuzz_init_detection_module(&ndpi_info_mod, 0);
+ }
+
+ is_ipv6 = fuzzed_data.ConsumeBool();
+ if (is_ipv6)
+ maxbits = 128;
+ else
+ maxbits = 32;
+
+ p = ndpi_patricia_new(maxbits);
+
+ ndpi_patricia_process(p, process_ptree_data);
+ ndpi_patricia_walk_tree_inorder(p, process3_ptree_data, NULL);
+
+ /* "Random" add */
+ num_iteration = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ for (i = 0; i < num_iteration; i++) {
+ if (!is_ipv6) {
+ if(fuzzed_data.remaining_bytes() > 4) {
+ std::vector<u_int8_t>data = fuzzed_data.ConsumeBytes<u_int8_t>(4);
+ ip = data.data();
+ ip_len = fuzzed_data.ConsumeIntegralInRange(0, 32);
+ ndpi_fill_prefix_v4(&prefix, (struct in_addr *)ip, ip_len, 32);
+ node = ndpi_patricia_lookup(p, &prefix);
+ /* Keep one random node really added */
+ if (node && is_added == 0 && fuzzed_data.ConsumeBool()) {
+ is_added = 1;
+ prefix_added = prefix;
+ }
+ }
+ } else {
+ if(fuzzed_data.remaining_bytes() > 128) {
+ std::vector<u_int8_t>data = fuzzed_data.ConsumeBytes<u_int8_t>(128);
+ ip = data.data();
+ ip_len = fuzzed_data.ConsumeIntegralInRange(0, 128);
+ ndpi_fill_prefix_v6(&prefix, (const struct in6_addr *)ip, ip_len, 128);
+ node = ndpi_patricia_lookup(p, &prefix);
+ /* Keep one random node really added */
+ if (node && is_added == 0 && fuzzed_data.ConsumeBool()) {
+ is_added = 1;
+ prefix_added = prefix;
+ }
+ }
+ }
+ }
+
+ ndpi_patricia_process(p, process_ptree_data);
+ ndpi_patricia_walk_tree_inorder(p, process3_ptree_data, NULL);
+
+ /* "Random" exact search. Remove if found */
+ num_iteration = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ for (i = 0; i < num_iteration; i++) {
+ if (!is_ipv6) {
+ if(fuzzed_data.remaining_bytes() > 4) {
+ std::vector<u_int8_t>data = fuzzed_data.ConsumeBytes<u_int8_t>(4);
+ ip = data.data();
+ ip_len = fuzzed_data.ConsumeIntegralInRange(0, 32);
+ ndpi_fill_prefix_v4(&prefix, (struct in_addr *)ip, ip_len, 32);
+ node = ndpi_patricia_search_exact(p, &prefix);
+ if (node)
+ 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);
+ ip = data.data();
+ ip_len = fuzzed_data.ConsumeIntegralInRange(0, 128);
+ ndpi_fill_prefix_v6(&prefix, (const struct in6_addr *)ip, ip_len, 128);
+ node = ndpi_patricia_search_exact(p, &prefix);
+ if (node)
+ ndpi_patricia_remove(p, node);
+ }
+ }
+ }
+ /* Exact search of an added node */
+ if (is_added)
+ ndpi_patricia_search_exact(p, &prefix_added);
+
+ /* "Random" best search. Remove if found */
+ num_iteration = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ for (i = 0; i < num_iteration; i++) {
+ if (!is_ipv6) {
+ if(fuzzed_data.remaining_bytes() > 4) {
+ std::vector<u_int8_t>data = fuzzed_data.ConsumeBytes<u_int8_t>(4);
+ ip = data.data();
+ ip_len = fuzzed_data.ConsumeIntegralInRange(0, 32);
+ ndpi_fill_prefix_v4(&prefix, (struct in_addr *)ip, ip_len, 32);
+ node = ndpi_patricia_search_best(p, &prefix);
+ if (node)
+ 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);
+ ip = data.data();
+ ip_len = fuzzed_data.ConsumeIntegralInRange(0, 128);
+ ndpi_fill_prefix_v6(&prefix, (const struct in6_addr *)ip, ip_len, 128);
+ node = ndpi_patricia_search_best(p, &prefix);
+ if (node)
+ ndpi_patricia_remove(p, node);
+ }
+ }
+ }
+ /* Best search of an added node */
+ if (is_added)
+ ndpi_patricia_search_best(p, &prefix_added);
+
+ p_cloned = ndpi_patricia_clone(p);
+
+ ndpi_patricia_process(p_cloned, process_ptree_data);
+ ndpi_patricia_walk_tree_inorder(p_cloned, process3_ptree_data, NULL);
+
+
+ ndpi_patricia_destroy(p, free_ptree_data);
+ ndpi_patricia_destroy(p_cloned, free_ptree_data);
+
+ return 0;
+}
diff --git a/src/include/ndpi_api.h b/src/include/ndpi_api.h
index 5214c054f..f1a64f26b 100644
--- a/src/include/ndpi_api.h
+++ b/src/include/ndpi_api.h
@@ -1123,6 +1123,7 @@ extern "C" {
size_t ndpi_patricia_walk_tree_inorder(ndpi_patricia_tree_t *patricia, ndpi_void_fn3_t func, void *data);
size_t ndpi_patricia_walk_inorder(ndpi_patricia_node_t *node, ndpi_void_fn3_t func, void *data);
void ndpi_patricia_remove(ndpi_patricia_tree_t *patricia, ndpi_patricia_node_t *node);
+ void ndpi_patricia_process (ndpi_patricia_tree_t *patricia, ndpi_void_fn2_t func);
void ndpi_patricia_set_node_u64(ndpi_patricia_node_t *node, u_int64_t value);
u_int64_t ndpi_patricia_get_node_u64(ndpi_patricia_node_t *node);
@@ -1677,13 +1678,13 @@ extern "C" {
/* ******************************* */
int ndpi_ses_init(struct ndpi_ses_struct *ses, double alpha, float significance);
- int ndpi_ses_add_value(struct ndpi_ses_struct *ses, const u_int64_t _value, double *forecast, double *confidence_band);
+ int ndpi_ses_add_value(struct ndpi_ses_struct *ses, const double _value, double *forecast, double *confidence_band);
void ndpi_ses_fitting(double *values, u_int32_t num_values, float *ret_alpha);
/* ******************************* */
int ndpi_des_init(struct ndpi_des_struct *des, double alpha, double beta, float significance);
- int ndpi_des_add_value(struct ndpi_des_struct *des, const u_int64_t _value, double *forecast, double *confidence_band);
+ int ndpi_des_add_value(struct ndpi_des_struct *des, const double _value, double *forecast, double *confidence_band);
void ndpi_des_fitting(double *values, u_int32_t num_values, float *ret_alpha, float *ret_beta);
/* ******************************* */
diff --git a/src/include/ndpi_typedefs.h b/src/include/ndpi_typedefs.h
index 949db82a7..022c21ce0 100644
--- a/src/include/ndpi_typedefs.h
+++ b/src/include/ndpi_typedefs.h
@@ -1787,6 +1787,8 @@ enum ndpi_bin_family {
ndpi_bin_family16,
ndpi_bin_family32,
ndpi_bin_family64,
+
+ kMaxValue = ndpi_bin_family64, /* To ease fuzzing */
};
struct ndpi_bin {
diff --git a/src/lib/ndpi_analyze.c b/src/lib/ndpi_analyze.c
index 66b68e0b2..0fe749050 100644
--- a/src/lib/ndpi_analyze.c
+++ b/src/lib/ndpi_analyze.c
@@ -70,15 +70,22 @@ void ndpi_free_data_analysis(struct ndpi_analyze_struct *d, u_int8_t free_pointe
/* ********************************************************************************* */
void ndpi_reset_data_analysis(struct ndpi_analyze_struct *d) {
- u_int32_t *values_bkp = d->values;
- u_int32_t num_values_array_len_bpk = d->num_values_array_len;
+ u_int32_t *values_bkp;
+ u_int32_t num_values_array_len_bpk;
+
+ if(!d)
+ return;
+
+ values_bkp = d->values;
+ num_values_array_len_bpk = d->num_values_array_len;
memset(d, 0, sizeof(struct ndpi_analyze_struct));
d->values = values_bkp;
d->num_values_array_len = num_values_array_len_bpk;
- memset(d->values, 0, sizeof(u_int32_t)*d->num_values_array_len);
+ if(d->values)
+ memset(d->values, 0, sizeof(u_int32_t)*d->num_values_array_len);
}
/* ********************************************************************************* */
@@ -178,7 +185,7 @@ float ndpi_data_mean(struct ndpi_analyze_struct *s) {
/* Compute the average only on the sliding window */
float ndpi_data_window_average(struct ndpi_analyze_struct *s) {
- if(s->num_values_array_len) {
+ if(s && s->num_values_array_len) {
float sum = 0.0;
u_int16_t i, n = ndpi_min(s->num_data_entries, s->num_values_array_len);
@@ -197,7 +204,7 @@ float ndpi_data_window_average(struct ndpi_analyze_struct *s) {
/* Compute the variance only on the sliding window */
float ndpi_data_window_variance(struct ndpi_analyze_struct *s) {
- if(s->num_values_array_len) {
+ if(s && s->num_values_array_len) {
float sum = 0.0, avg = ndpi_data_window_average(s);
u_int16_t i, n = ndpi_min(s->num_data_entries, s->num_values_array_len);
@@ -225,13 +232,16 @@ float ndpi_data_window_stddev(struct ndpi_analyze_struct *s) {
Compute entropy on the last sliding window values
*/
float ndpi_data_entropy(struct ndpi_analyze_struct *s) {
- if(s->num_values_array_len) {
+ if(s && s->num_values_array_len) {
int i;
float sum = 0.0, total = 0.0;
for(i=0; i<s->num_values_array_len; i++)
total += s->values[i];
+ if(fpclassify(total) == FP_ZERO)
+ return(0);
+
for (i=0; i<s->num_values_array_len; i++) {
float tmp = (float)s->values[i] / (float)total;
@@ -247,7 +257,7 @@ float ndpi_data_entropy(struct ndpi_analyze_struct *s) {
/* ********************************************************************************* */
void ndpi_data_print_window_values(struct ndpi_analyze_struct *s) {
- if(s->num_values_array_len) {
+ if(s && s->num_values_array_len) {
u_int16_t i, n = ndpi_min(s->num_data_entries, s->num_values_array_len);
for(i=0; i<n; i++)
@@ -371,9 +381,12 @@ void ndpi_free_bin(struct ndpi_bin *b) {
/* ********************************************************************************* */
struct ndpi_bin* ndpi_clone_bin(struct ndpi_bin *b) {
- struct ndpi_bin *out = (struct ndpi_bin*)ndpi_malloc(sizeof(struct ndpi_bin));
+ struct ndpi_bin *out;
+
+ if(!b || !b->u.bins8) return(NULL);
- if(!b || !b->u.bins8 || !out) return(NULL);
+ out = (struct ndpi_bin*)ndpi_malloc(sizeof(struct ndpi_bin));
+ if(!out) return(NULL);
out->num_bins = b->num_bins, out->family = b->family, out->is_empty = b->is_empty;
@@ -417,7 +430,7 @@ struct ndpi_bin* ndpi_clone_bin(struct ndpi_bin *b) {
/* ********************************************************************************* */
void ndpi_set_bin(struct ndpi_bin *b, u_int16_t slot_id, u_int64_t val) {
- if(!b || !b->u.bins8)
+ if(!b || !b->u.bins8 || b->num_bins == 0)
return;
if(slot_id >= b->num_bins) slot_id = 0;
@@ -441,7 +454,7 @@ void ndpi_set_bin(struct ndpi_bin *b, u_int16_t slot_id, u_int64_t val) {
/* ********************************************************************************* */
void ndpi_inc_bin(struct ndpi_bin *b, u_int16_t slot_id, u_int64_t val) {
- if(!b || !b->u.bins8)
+ if(!b || !b->u.bins8 || b->num_bins == 0)
return;
b->is_empty = 0;
@@ -467,7 +480,7 @@ void ndpi_inc_bin(struct ndpi_bin *b, u_int16_t slot_id, u_int64_t val) {
/* ********************************************************************************* */
u_int64_t ndpi_get_bin_value(struct ndpi_bin *b, u_int16_t slot_id) {
- if(!b || !b->u.bins8)
+ if(!b || !b->u.bins8 || b->num_bins == 0)
return(0);
if(slot_id >= b->num_bins) slot_id = 0;
@@ -669,7 +682,7 @@ float ndpi_bin_similarity(struct ndpi_bin *b1, struct ndpi_bin *b2,
}
#else
{
- u_int32_t sum = 0;
+ double sum = 0;
for(i=0; i<b1->num_bins; i++) {
u_int32_t a = ndpi_get_bin_value(b1, i);
@@ -714,6 +727,9 @@ int ndpi_cluster_bins(struct ndpi_bin *bins, u_int16_t num_bins,
srand(time(NULL));
+ if(!bins || num_bins == 0 || !cluster_ids || num_clusters == 0)
+ return(-1);
+
if(num_clusters > num_bins) num_clusters = num_bins;
if(num_clusters > MAX_NUM_CLUSTERS) num_clusters = MAX_NUM_CLUSTERS;
@@ -917,6 +933,9 @@ int ndpi_cluster_bins(struct ndpi_bin *bins, u_int16_t num_bins,
*/
int ndpi_alloc_rsi(struct ndpi_rsi_struct *s, u_int16_t num_learning_values) {
+ if(!s || num_learning_values == 0)
+ return(-1);
+
memset(s, 0, sizeof(struct ndpi_rsi_struct));
s->empty = 1, s->num_values = num_learning_values;
@@ -1061,6 +1080,9 @@ int ndpi_hw_init(struct ndpi_hw_struct *hw,
double alpha, double beta, double gamma, float significance) {
memset(hw, 0, sizeof(struct ndpi_hw_struct));
+ if(num_periods == 65535) /* To avoid overflow */
+ return(-1);
+
hw->params.num_season_periods = num_periods + 1;
hw->params.alpha = alpha;
hw->params.beta = beta;
@@ -1195,6 +1217,9 @@ int ndpi_hw_add_value(struct ndpi_hw_struct *hw, const u_int64_t _value, double
*/
int ndpi_jitter_init(struct ndpi_jitter_struct *s, u_int16_t num_learning_values) {
+ if(!s)
+ return(-1);
+
memset(s, 0, sizeof(struct ndpi_jitter_struct));
if(num_learning_values < 2) num_learning_values = 2;
@@ -1255,6 +1280,9 @@ float ndpi_jitter_add_value(struct ndpi_jitter_struct *s, const float value) {
*/
int ndpi_ses_init(struct ndpi_ses_struct *ses, double alpha, float significance) {
+ if(!ses)
+ return(-1);
+
memset(ses, 0, sizeof(struct ndpi_ses_struct));
ses->params.alpha = alpha;
@@ -1282,7 +1310,7 @@ int ndpi_ses_init(struct ndpi_ses_struct *ses, double alpha, float significance)
0 Too early: we're still in the learning phase. Output values are zero.
1 Normal processing: forecast and confidence_band are meaningful
*/
-int ndpi_ses_add_value(struct ndpi_ses_struct *ses, const u_int64_t _value, double *forecast, double *confidence_band) {
+int ndpi_ses_add_value(struct ndpi_ses_struct *ses, const double _value, double *forecast, double *confidence_band) {
double value = (double)_value, error, sq_error;
int rc;
@@ -1330,6 +1358,11 @@ void ndpi_ses_fitting(double *values, u_int32_t num_values, float *ret_alpha) {
double sse, lowest_sse;
int trace = 0;
+ if(!values || num_values == 0) {
+ *ret_alpha = 0;
+ return;
+ }
+
lowest_sse = 0, best_alpha = 0;
for(alpha=0.1; alpha<0.99; alpha += 0.05) {
@@ -1382,6 +1415,9 @@ void ndpi_ses_fitting(double *values, u_int32_t num_values, float *ret_alpha) {
*/
int ndpi_des_init(struct ndpi_des_struct *des, double alpha, double beta, float significance) {
+ if(!des)
+ return(-1);
+
memset(des, 0, sizeof(struct ndpi_des_struct));
des->params.alpha = alpha;
@@ -1410,7 +1446,7 @@ int ndpi_des_init(struct ndpi_des_struct *des, double alpha, double beta, float
0 Too early: we're still in the learning phase. Output values are zero.
1 Normal processing: forecast and confidence_band are meaningful
*/
-int ndpi_des_add_value(struct ndpi_des_struct *des, const u_int64_t _value, double *forecast, double *confidence_band) {
+int ndpi_des_add_value(struct ndpi_des_struct *des, const double _value, double *forecast, double *confidence_band) {
double value = (double)_value, error, sq_error;
int rc;
@@ -1460,6 +1496,12 @@ void ndpi_des_fitting(double *values, u_int32_t num_values, float *ret_alpha, fl
double sse, lowest_sse;
int trace = 0;
+ if(!values || num_values == 0) {
+ *ret_alpha = 0;
+ *ret_beta = 0;
+ return;
+ }
+
lowest_sse = 0, best_alpha = 0, best_beta = 0;
for(beta=0.1; beta<0.99; beta += 0.05) {
@@ -1513,7 +1555,10 @@ u_int ndpi_find_outliers(u_int32_t *values, bool *outliers, u_int32_t num_values
u_int i, ret = 0;
float mean, stddev, low_threshold = -2.5, high_threshold = 2.5;
struct ndpi_analyze_struct a;
-
+
+ if(!values || !outliers || num_values == 0)
+ return(ret);
+
ndpi_init_data_analysis(&a, 3 /* this is the window so we do not need to store values and 3 is enough */);
/* Add values */
@@ -1522,7 +1567,12 @@ u_int ndpi_find_outliers(u_int32_t *values, bool *outliers, u_int32_t num_values
mean = ndpi_data_mean(&a);
stddev = ndpi_data_stddev(&a);
-
+
+ if(fpclassify(stddev) == FP_ZERO) {
+ ndpi_free_data_analysis(&a, 0);
+ return(ret);
+ }
+
/* Process values */
for(i=0; i<num_values; i++) {
float z_score = (((float)values[i]) - mean) / stddev;
diff --git a/src/lib/ndpi_main.c b/src/lib/ndpi_main.c
index 4618cb75f..dd54356cf 100644
--- a/src/lib/ndpi_main.c
+++ b/src/lib/ndpi_main.c
@@ -2104,7 +2104,8 @@ static void ndpi_init_protocol_defaults(struct ndpi_detection_module_struct *ndp
#define MATCH_DEBUG_INFO(fmt, ...) if(txt->option & AC_FEATURE_DEBUG) printf(fmt, ##__VA_ARGS__)
-static int ac_domain_match_handler(AC_MATCH_t *m, AC_TEXT_t *txt, AC_REP_t *match) {
+/* No static because it is used by fuzzer, too */
+int ac_domain_match_handler(AC_MATCH_t *m, AC_TEXT_t *txt, AC_REP_t *match) {
AC_PATTERN_t *pattern = m->patterns;
int i,start,end = m->position;
diff --git a/src/lib/third_party/include/ahocorasick.h b/src/lib/third_party/include/ahocorasick.h
index 0651ce0f8..37d13b0f0 100644
--- a/src/lib/third_party/include/ahocorasick.h
+++ b/src/lib/third_party/include/ahocorasick.h
@@ -18,6 +18,10 @@
along with multifast. If not, see <http://www.gnu.org/licenses/>.
*/
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#ifndef _AC_TYPES_H_
#define _AC_TYPES_H_
@@ -274,3 +278,7 @@ void ac_automata_dump (AC_AUTOMATA_t * thiz, FILE *);
#endif
void ac_automata_get_stats(AC_AUTOMATA_t * thiz, struct ac_stats *stats);
#endif
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/src/lib/third_party/src/ahocorasick.c b/src/lib/third_party/src/ahocorasick.c
index 70f566550..34ca51dac 100644
--- a/src/lib/third_party/src/ahocorasick.c
+++ b/src/lib/third_party/src/ahocorasick.c
@@ -643,17 +643,25 @@ static AC_ERROR_t dump_node_common(AC_AUTOMATA_t * thiz,
dump_node_header(n,ai);
if (n->matched_patterns && n->matched_patterns->num && n->final) {
char lbuf[512];
- int nl = 0,j;
+ int nl = 0,j,ret;
nl = ndpi_snprintf(lbuf,sizeof(lbuf),"'%.100s' N:%d{",rstr,n->matched_patterns->num);
for (j=0; j<n->matched_patterns->num; j++) {
AC_PATTERN_t *sid = &n->matched_patterns->patterns[j];
- if(j) nl += ndpi_snprintf(&lbuf[nl],sizeof(lbuf)-nl-1,", ");
- nl += ndpi_snprintf(&lbuf[nl],sizeof(lbuf)-nl-1,"%d %c%.100s%c",
+ if(j) {
+ ret = ndpi_snprintf(&lbuf[nl],sizeof(lbuf)-nl-1,", ");
+ if (ret < 0 || (unsigned int)ret >= sizeof(lbuf)-nl-1)
+ break;
+ nl += (unsigned int)ret;
+ }
+ ret = ndpi_snprintf(&lbuf[nl],sizeof(lbuf)-nl-1,"%d %c%.100s%c",
sid->rep.number & 0x3fff,
sid->rep.number & 0x8000 ? '^':' ',
sid->astring,
sid->rep.number & 0x4000 ? '$':' ');
+ if (ret < 0 || (unsigned int)ret >= sizeof(lbuf)-nl-1)
+ break;
+ nl += (unsigned int)ret;
}
fprintf(ai->file,"%s}\n",lbuf);
}
@@ -700,6 +708,7 @@ void ac_automata_dump(AC_AUTOMATA_t * thiz, FILE *file) {
fprintf(ai.file,"---\n mem size %zu avg node size %d, node one char %d, <=8c %d, >8c %d, range %d\n---DUMP-END-\n",
ai.memcnt,(int)ai.memcnt/(thiz->all_nodes_num+1),(int)ai.node_oc,(int)ai.node_8c,(int)ai.node_xc,(int)ai.node_xr);
#endif
+ acho_free(ai.bufstr);
}
#endif
diff --git a/src/lib/third_party/src/hll/MurmurHash3.c b/src/lib/third_party/src/hll/MurmurHash3.c
index ba4d60680..cf395f52b 100644
--- a/src/lib/third_party/src/hll/MurmurHash3.c
+++ b/src/lib/third_party/src/hll/MurmurHash3.c
@@ -16,7 +16,9 @@ u_int32_t MurmurHash3_x86_32(const void *key, u_int32_t len, u_int32_t seed) {
const u_int32_t c1 = 0xcc9e2d51;
const u_int32_t c2 = 0x1b873593;
- const u_int32_t *blocks = (const u_int32_t *)(data + nblocks * 4);
+ const u_int32_t *blocks = NULL;
+ if(data && len) /* To avoid UBSAN warning: runtime error: applying zero offset to null pointer */
+ blocks = (const u_int32_t *)(data + nblocks * 4);
for(i = -nblocks; i; i++)
{
@@ -31,7 +33,9 @@ u_int32_t MurmurHash3_x86_32(const void *key, u_int32_t len, u_int32_t seed) {
h1 = h1 * 5 + 0xe6546b64;
}
- const u_int8_t * tail = (const u_int8_t *)(data + nblocks * 4);
+ const u_int8_t * tail = NULL;
+ if(data && len) /* To avoid UBSAN warning: runtime error: applying zero offset to null pointer */
+ tail = (const u_int8_t *)(data + nblocks * 4);
u_int32_t k1 = 0;
diff --git a/src/lib/third_party/src/hll/hll.c b/src/lib/third_party/src/hll/hll.c
index ad7284411..b0e0a1343 100644
--- a/src/lib/third_party/src/hll/hll.c
+++ b/src/lib/third_party/src/hll/hll.c
@@ -71,6 +71,13 @@ static __inline u_int8_t _hll_rank(u_int32_t hash, u_int8_t bits) {
[i: 19] 524288 bytes [StdError: 0.14%]
*/
int hll_init(struct ndpi_hll *hll, u_int8_t bits) {
+ if(!hll) {
+ errno = EINVAL;
+ return -1;
+ }
+
+ memset(hll, '\0', sizeof(*hll));
+
if(bits < 4 || bits > 20) {
errno = ERANGE;
return -1;