aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore4
-rw-r--r--fuzz/Makefile.am64
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/000b6da044c11d100ffecc1c58f236a0c243f2c91
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/03191cdd9d39fd9e9481819abe8096d3cd8dcaa9bin0 -> 29659 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/0b085fb6da7814c2e70c22ca0221090b8bf4002cbin0 -> 30794 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/0c78f9445a26753487132bc34b2fa5526b82357b1
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/0c9acbe4dba896e14dbaaf1063b4b445d2fd8f531
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/0ccd0d0397766b982826f7cf9115f97018a62466bin0 -> 319 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/0db99f086dca27ead6b42db91de404061b6239811
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/0eff7f526d9e547a3fd3fc0bfbaefa1e686ec9ec1
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/10c27c41df755669fc42b71d295eda528c02f5b6bin0 -> 68 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/10f0aadbed8649c5917a9d90a1483a30ad83793fbin0 -> 131 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/2730ef1769e66315391286ab579e13efc1baa6701
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/27e24cb43045da83ad481dd8c6cd38de1bd359fc1
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/28005384ac31d00f0dce884ff065f66c76bc391bbin0 -> 29543 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/2ac3872be3ae0f578da110d5580b362374676ef9bin0 -> 39 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/2e540ffd5bd997876f0d84bb1d760602514437d5bin0 -> 152 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/36f01f003e9a03de198ced6ad4ae919a5a9fd039bin0 -> 30313 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/375e36427a1552d8ff4d3c496296e4d2e52ae035bin0 -> 1032 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/3af39359237047d1453f3a843348b1a53a7a480dbin0 -> 743 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/3c2fa67399fcc4c7de379137a631ac8278f5edc71
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/3de96d39842d29fa7c63589ecbfd2b652b329334bin0 -> 62992 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/448fdcde54b118a62f7a53c134a35ca447c0e762bin0 -> 60 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/485cc776ea8d113e993d911e39ebbe089669f949bin0 -> 28 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/486f2245c8e26f0f769ab53503d6d7bc5d15c97bbin0 -> 1030 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/4b7cc42c02089c817ff610eb65d149356d96062a1
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/539e28d50616971ae880b07df55661945966626cbin0 -> 4134 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/5e3bfa52c5d6a5e3cb2288fa9c58dd09b546f2babin0 -> 80 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/60c5f54695042fd2d6e0b97bddf3e55f8c9807b7bin0 -> 47 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/6886bfb6a9cb9398e4dfbf0fa4fb909148d442a11
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/6e97172624f802febb1f68d357254e768810efc6bin0 -> 40 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/6f103d053753b48191a50676b186154388fd90cebin0 -> 29872 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/6fb915c4967d2d8b03c3cbc6e65aa247ea94dde3bin0 -> 29380 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/707c8ca3c49e1519254f90d69626a4cd351b45cabin0 -> 29830 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/75c56111e67252f6b544aabf055ef7113f44891ebin0 -> 32145 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/7b1b296a38fa941521b1ae5ada7f53fcb01616c5bin0 -> 35 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/8bb13e2f178a7da1580dbcf426885e6ac861a609bin0 -> 29864 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/8dfde24023b6377ec411016db54890ad58370d9cbin0 -> 33376 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/90f53e4946ded91eedeffe75747a9118d747d0291
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/920da1a4cec774e0de02ebf54087099de7658cdbbin0 -> 39 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/96996a3adf736a9044a04c5d8acd73e385b1bc6bbin0 -> 1037 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/9e55233a97010a5a3f2dfad360e5c8a3e2d9b8ef1
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/9f28a467c09155c799c880706286180fc50ee0a2bin0 -> 149 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/a8fb1448425ca0cb6871ec51c67332eb2185159ebin0 -> 15 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/ab870e2c87f40df57d2aeb9a035f6f55b3486261bin0 -> 5885 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/aca80cb5b3b214b3273623a383678e3e66eece2bbin0 -> 29892 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/afa1100989a7a625fe7bbf39e09a296c53a5572cbin0 -> 13 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/aff44f8008132c50796911f5f52f1e2307c2a8581
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/b51a60734da64be0e618bacbea2865a8a7dcd6691
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/b5c0fdf0969f9ad91e127670d76df252e6e6b1d9bin0 -> 29549 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/b5d2b5145a6066fd0429e1236dd08fff307122abbin0 -> 90 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/b5f6e6294cc83f68f906cdc5195a45c30ce111211
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/b8dbebe13b9f719baae6afc13a3ee01846c33089bin0 -> 54 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/c03aa82eaa3d73636a44653b05f2aa83d465ae32bin0 -> 29544 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/c4fcead253b3a6ea0ebb48397751d2439b1f489fbin0 -> 260 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/c50e5229c745fc00ea982d7e31a21501362ae054bin0 -> 48254 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/cedb4282204e8a6469f370e6ed6b082ba0017b541
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/d39a8fafd0e4a957003dcbc8ca23e48e9640aababin0 -> 29774 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/d58f4b573cd04c2ff3df7487ca8c5bc942335a301
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/d9739412222ab242871c5292f12e5556e779a9c81
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/e20b515e8276f7bb16141e37b25d231266840ce3bin0 -> 30 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/e4e2d81d9c15ac2493c5014d584721366dd38af8bin0 -> 38 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/e54dbe399501a4027fdd3e2bcd547b4ba8699d001
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/eefc0d805828e9bd300c2ce9370e32554a93d79abin0 -> 29830 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/ef1f8773349d15d2c581642068b3b06206a2b43ebin0 -> 29301 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/f0c957104bb1b80c9d125d9c8cbb3f06fbf2ab1abin0 -> 4 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/f1c09f190bf77d120a0e539412bbd9fa70af062fbin0 -> 271 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/f4643e6de35a287e7ccc44126aabd147f86bff26bin0 -> 29826 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/fa5b31c6f43981ff6a304189345466790de5a10b1
-rw-r--r--fuzz/corpus/fuzz_ds_bitmap64/fb8f2cb93bb8e3215593ea1395a6ec62c627ed87bin0 -> 48 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/0763c17eddc590407feeca191d3592c1961bfc2abin0 -> 9049 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/094d98b399bf4ace7b8899ab7081e867fb03f8691
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/11952b9dbc937aad9ee4ab4558bbf453ba29c3e6bin0 -> 940 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/1489f923c4dca729178b3e3233458550d8dddf29bin0 -> 2 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/171af5b11ede78dd8b5ec564ebfbe7f67a0d00f6bin0 -> 2818 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/1a95536cfa43be767a4c275a39b7be4808e9089cbin0 -> 2 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/1c19ecde3ec34849b56eaf7644891b363aed140a1
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/2238a1ca2a865dd629a955573bc6865f5703e043bin0 -> 36 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/268609400f747aab608d7341377633a218292a8bbin0 -> 67 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/29c5ad6b994594b24efdeff0aded2b170573d804bin0 -> 1137 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/29e50e32fad939cfb4f81e41babf701b62ae9e35bin0 -> 18 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/2bb953bdd42b4e1f04bd8e0be26ef8cfc77b686fbin0 -> 480 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/2d0134ed3b9de132c720fe697b532b4c232ff9fe1
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/304ffc88b8aba511ba115643aaca30a57cf3a39fbin0 -> 22571 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/334b5776531596fbf87f4003b59e59eed55fc064bin0 -> 2167 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/339145dd705eaa3a3507c66682f4af74d8992de7bin0 -> 1577 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/39f0e3be6ce5f0f68b2f4980f49d33a8eddceffe1
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/418b6bf6865a11f3aea753a7bc424f14c324ad02bin0 -> 548 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/437fafa21180ba3e97eee66d9f0d6e7ee384c792bin0 -> 2930 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/438b9c851cab4d3000cf67e9c79f61102cf0edf7bin0 -> 140 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/4887d5f71acee372a80a51f854db00a9ac6ad4b1bin0 -> 1712 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/511856a6624c10a5b873c94c9c353d7c40f55d13bin0 -> 10 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/548d725eefec486a240420c2a2a052719f6abdfbbin0 -> 784 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/54a5dc7b5a3c176c8a7860763016b099851a71772
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/569797426145c8f97a79507f55a3643380fef99abin0 -> 401 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/5793d2e18f5e5da0e1ad0dd0d653a07d99697629bin0 -> 33 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/5ba93c9db0cff93f52b521d7420e43f6eda2784fbin0 -> 1 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/5d7b38594b7e96fc7fecbda28e918247815d18e8bin0 -> 2572 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/60f8bf8d92afec3747e8dcb0268b2a71e43307a1bin0 -> 533 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/64b68bf5b882b9bd0b37267287980ecfa0e44a851
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/659f0d816b309d7b36420e455dac2b72c422e0431
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/6764243865a15be7f67e674e753117df9e682e92bin0 -> 278 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/6b303cb9736917e6770d242b54d3c264b1c3a163bin0 -> 604 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/76a3b04816a0d02bd8f62f10100d8d3fcd8f7870bin0 -> 78 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/827128eea26a395dbd08c061d746ff72bf4d4237bin0 -> 9162 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/8b466a25395565bbc2c00e55043fe8a990763b5cbin0 -> 33675 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/8eaa6a4ea0565df425174b7dd73447aba400757dbin0 -> 16582 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/8ed36d145e9179de1f587e1c342ab505132b1b19bin0 -> 574 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/916b6aa0dd2152617f811bfae99f244c5ae4ced2bin0 -> 12044 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/917e18eaa6fa97734a052608c2544b0484284b02bin0 -> 3505 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/9842926af7ca0a8cca12604f945414f07b01e13d1
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/9ac9505d7081e5c6a37b859f9272570244a0f98cbin0 -> 3 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/9f6be58219b7645ceeb3535f9300b1b4fc17de61bin0 -> 1883 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/a42c6cf1de3abfdea9b95f34687cbbe92b9a73831
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/a455fdcb5b79cb644de056827cc6158ca3a2ce44bin0 -> 1014 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/a760deb5c9a538e1c42fc3ffa650dc15dc8f8e25bin0 -> 6404 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/acb68aea390eb6c65a4befd4d4f0a1e8dd2686cdbin0 -> 9594 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/ad34c510e307e6659ef99bf5bb030dd59907d5a7bin0 -> 60 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/b4f4214e3a75f34b3cde5a07511dc3fc28ee30d4bin0 -> 3664 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/b4f4ffee175644a5c3cd5f9e0e3a6a18e156803dbin0 -> 261 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/bec542f004a8a2401493dde5c8bbafe91644a0a1bin0 -> 23 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/bf8b4530d8d246dd74ac53a13471bba17941dff71
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/c4ea21bb365bbeeaf5f2c654883e56d11e43c44e1
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/c7255dc48b42d44f6c0676d6009051b7e1aa885b1
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/d1224e1a17cd7e959396405e3b6c414f9734b45bbin0 -> 33215 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/da33e41954997c24ad31f6c1845e18510b384f67bin0 -> 2 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/df6ada8a1eeef582869d1d938a8f1cd478d2fe67bin0 -> 263 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/e8c6f79f570740561b8e423a7c8855ddeab8899bbin0 -> 12003 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/eae48a76748e7ea357ac1bd3f151e03910fc7704bin0 -> 79 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/ed85b0a21a5eb7ee95c17254658bfea922035497bin0 -> 17915 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/fad9e4c68a79cc7198543572432b34be868b443dbin0 -> 34 bytes
-rw-r--r--fuzz/corpus/fuzz_ds_domain_classify/fdaaa229ce19324a2adfaeee8f637a5f6e29719b1
-rw-r--r--fuzz/fuzz_alg_crc32_md5.c20
-rw-r--r--fuzz/fuzz_ds_bitmap64.cpp54
-rw-r--r--fuzz/fuzz_ds_domain_classify.cpp53
-rw-r--r--src/include/ndpi_api.h16
-rw-r--r--src/lib/ndpi_bitmap64.c17
-rw-r--r--src/lib/ndpi_domain_classify.c18
-rw-r--r--src/lib/ndpi_hash.c12
139 files changed, 247 insertions, 45 deletions
diff --git a/.gitignore b/.gitignore
index 2a07ea856..c1e896636 100644
--- a/.gitignore
+++ b/.gitignore
@@ -70,6 +70,8 @@
/fuzz/fuzz_ds_ptree
/fuzz/fuzz_ds_hash
/fuzz/fuzz_ds_ahocorasick
+/fuzz/fuzz_ds_bitmap64
+/fuzz/fuzz_ds_domain_classify
/fuzz/fuzz_libinjection
/fuzz/fuzz_tls_certificate
/fuzz/fuzz_dga
@@ -97,6 +99,8 @@
/fuzz/fuzz_ds_tree_seed_corpus.zip
/fuzz/fuzz_ds_ptree_seed_corpus.zip
/fuzz/fuzz_ds_ahocorasick_seed_corpus.zip
+/fuzz/fuzz_ds_bitmap64_seed_corpus.zip
+/fuzz/fuzz_ds_domain_classify_seed_corpus.zip
/fuzz/fuzz_libinjection_seed_corpus.zip
/fuzz/fuzz_tls_certificate_seed_corpus.zip
/fuzz/fuzz_filecfg_protocols_seed_corpus.zip
diff --git a/fuzz/Makefile.am b/fuzz/Makefile.am
index 0235e718c..9764f58ac 100644
--- a/fuzz/Makefile.am
+++ b/fuzz/Makefile.am
@@ -2,7 +2,7 @@ bin_PROGRAMS = fuzz_process_packet fuzz_ndpi_reader fuzz_ndpi_reader_alloc_fail
#Alghoritms
bin_PROGRAMS += fuzz_alg_bins fuzz_alg_hll fuzz_alg_hw_rsi_outliers_da fuzz_alg_jitter fuzz_alg_ses_des fuzz_alg_crc32_md5 fuzz_alg_bytestream
#Data structures
-bin_PROGRAMS += fuzz_ds_patricia fuzz_ds_ahocorasick fuzz_ds_libcache fuzz_ds_tree fuzz_ds_ptree fuzz_ds_hash fuzz_ds_cmsketch
+bin_PROGRAMS += fuzz_ds_patricia fuzz_ds_ahocorasick fuzz_ds_libcache fuzz_ds_tree fuzz_ds_ptree fuzz_ds_hash fuzz_ds_cmsketch fuzz_ds_bitmap64 fuzz_ds_domain_classify
#Third party
bin_PROGRAMS += fuzz_libinjection
#Internal crypto
@@ -328,6 +328,36 @@ fuzz_ds_cmsketch_LINK=$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CXX) @NDPI_CFLAGS@ $(AM_CXXFLAGS) $(CXXFLAGS) \
$(fuzz_ds_cmsketch_LDFLAGS) @NDPI_LDFLAGS@ $(LDFLAGS) -o $@
+fuzz_ds_bitmap64_SOURCES = fuzz_ds_bitmap64.cpp fuzz_common_code.c
+fuzz_ds_bitmap64_CXXFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS)
+fuzz_ds_bitmap64_CFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS)
+fuzz_ds_bitmap64_LDADD = ../src/lib/libndpi.a $(ADDITIONAL_LIBS)
+fuzz_ds_bitmap64_LDFLAGS = $(LIBS)
+if HAS_FUZZLDFLAGS
+fuzz_ds_bitmap64_CXXFLAGS += $(LIB_FUZZING_ENGINE)
+fuzz_ds_bitmap64_CFLAGS += $(LIB_FUZZING_ENGINE)
+fuzz_ds_bitmap64_LDFLAGS += $(LIB_FUZZING_ENGINE)
+endif
+# force usage of CXX for linker
+fuzz_ds_bitmap64_LINK=$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXX) @NDPI_CFLAGS@ $(AM_CXXFLAGS) $(CXXFLAGS) \
+ $(fuzz_ds_bitmap64_LDFLAGS) @NDPI_LDFLAGS@ $(LDFLAGS) -o $@
+
+fuzz_ds_domain_classify_SOURCES = fuzz_ds_domain_classify.cpp fuzz_common_code.c
+fuzz_ds_domain_classify_CXXFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS)
+fuzz_ds_domain_classify_CFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS)
+fuzz_ds_domain_classify_LDADD = ../src/lib/libndpi.a $(ADDITIONAL_LIBS)
+fuzz_ds_domain_classify_LDFLAGS = $(LIBS)
+if HAS_FUZZLDFLAGS
+fuzz_ds_domain_classify_CXXFLAGS += $(LIB_FUZZING_ENGINE)
+fuzz_ds_domain_classify_CFLAGS += $(LIB_FUZZING_ENGINE)
+fuzz_ds_domain_classify_LDFLAGS += $(LIB_FUZZING_ENGINE)
+endif
+# force usage of CXX for linker
+fuzz_ds_domain_classify_LINK=$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXX) @NDPI_CFLAGS@ $(AM_CXXFLAGS) $(CXXFLAGS) \
+ $(fuzz_ds_domain_classify_LDFLAGS) @NDPI_LDFLAGS@ $(LDFLAGS) -o $@
+
fuzz_libinjection_SOURCES = fuzz_libinjection.c
fuzz_libinjection_CFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS)
fuzz_libinjection_LDADD = ../src/lib/libndpi.a $(ADDITIONAL_LIBS)
@@ -440,17 +470,14 @@ fuzz_ndpi_reader_payload_analyzer_seed_corpus.zip: $(testpcaps)
zip -j fuzz_ndpi_reader_payload_analyzer_seed_corpus.zip $(testpcaps)
files_corpus_fuzz_quic_get_crypto_data := $(wildcard corpus/fuzz_quic_get_crypto_data/*)
-
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)
files_corpus_fuzz_config := $(wildcard corpus/fuzz_config/*)
-
fuzz_config_seed_corpus.zip: $(files_corpus_fuzz_config)
zip -j fuzz_config_seed_corpus.zip $(files_corpus_fuzz_config)
files_corpus_fuzz_serialization := $(wildcard corpus/fuzz_serialization/*)
-
fuzz_serialization_seed_corpus.zip: $(files_corpus_fuzz_serialization)
zip -j fuzz_serialization_seed_corpus.zip $(files_corpus_fuzz_serialization)
@@ -460,91 +487,82 @@ fuzz_community_id_seed_corpus.zip: $(files_corpus_fuzz_community_id)
zip -j fuzz_community_id_seed_corpus.zip $(files_corpus_fuzz_community_id)
files_corpus_fuzz_ds_patricia := $(wildcard corpus/fuzz_ds_patricia/*)
-
fuzz_ds_patricia_seed_corpus.zip: $(files_corpus_fuzz_ds_patricia)
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)
files_corpus_fuzz_alg_crc32_md5 := $(wildcard corpus/fuzz_alg_crc32_md5/*)
-
fuzz_alg_crc32_md5_seed_corpus.zip: $(files_corpus_fuzz_alg_crc32_md5)
zip -j fuzz_alg_crc32_md5_seed_corpus.zip $(files_corpus_fuzz_alg_crc32_md5)
files_corpus_fuzz_ds_libcache := $(wildcard corpus/fuzz_ds_libcache/*)
-
fuzz_ds_libcache_seed_corpus.zip: $(files_corpus_fuzz_ds_libcache)
zip -j fuzz_ds_libcache_seed_corpus.zip $(files_corpus_fuzz_ds_libcache)
files_corpus_fuzz_ds_tree := $(wildcard corpus/fuzz_ds_tree/*)
-
fuzz_ds_tree_seed_corpus.zip: $(files_corpus_fuzz_ds_tree)
zip -j fuzz_ds_tree_seed_corpus.zip $(files_corpus_fuzz_ds_tree)
files_corpus_fuzz_ds_ptree := $(wildcard corpus/fuzz_ds_ptree/*)
-
fuzz_ds_ptree_seed_corpus.zip: $(files_corpus_fuzz_ds_ptree)
zip -j fuzz_ds_ptree_seed_corpus.zip $(files_corpus_fuzz_ds_ptree)
files_corpus_fuzz_alg_bytestream := $(wildcard corpus/fuzz_alg_bytestream/*)
-
fuzz_alg_bytestream_seed_corpus.zip: $(files_corpus_fuzz_alg_bytestream)
zip -j fuzz_alg_bytestream_seed_corpus.zip $(files_corpus_fuzz_alg_bytestream)
files_corpus_fuzz_libinjection := $(wildcard corpus/fuzz_libinjection/*)
-
fuzz_libinjection_seed_corpus.zip: $(files_corpus_fuzz_libinjection)
zip -j fuzz_libinjection_seed_corpus.zip $(files_corpus_fuzz_libinjection)
files_corpus_fuzz_tls_certificate := $(wildcard corpus/fuzz_tls_certificate/*)
-
fuzz_tls_certificate_seed_corpus.zip: $(files_corpus_fuzz_tls_certificate)
zip -j fuzz_tls_certificate_seed_corpus.zip $(files_corpus_fuzz_tls_certificate)
files_corpus_fuzz_filecfg_protocols := $(wildcard corpus/fuzz_filecfg_protocols/*)
-
fuzz_filecfg_protocols_seed_corpus.zip: $(files_corpus_fuzz_filecfg_protocols)
zip -j fuzz_filecfg_protocols_seed_corpus.zip $(files_corpus_fuzz_filecfg_protocols)
files_corpus_fuzz_readerutils_workflow := $(wildcard corpus/fuzz_readerutils_workflow/*)
-
fuzz_readerutils_workflow_seed_corpus.zip: $(files_corpus_fuzz_readerutils_workflow)
zip -j fuzz_readerutils_workflow_seed_corpus.zip $(files_corpus_fuzz_readerutils_workflow)
files_corpus_fuzz_readerutils_parseprotolist := $(wildcard corpus/fuzz_readerutils_parseprotolist/*)
-
fuzz_readerutils_parseprotolist_seed_corpus.zip: $(files_corpus_fuzz_readerutils_parseprotolist)
zip -j fuzz_readerutils_parseprotolist_seed_corpus.zip $(files_corpus_fuzz_readerutils_parseprotolist)
-corpus: fuzz_ndpi_reader_seed_corpus.zip fuzz_ndpi_reader_alloc_fail_seed_corpus.zip fuzz_ndpi_reader_payload_analyzer_seed_corpus.zip fuzz_quic_get_crypto_data_seed_corpus.zip fuzz_config_seed_corpus.zip fuzz_ds_patricia_seed_corpus.zip fuzz_ds_ahocorasick_seed_corpus.zip fuzz_alg_ses_des_seed_corpus.zip fuzz_alg_hw_rsi_outliers_da_seed_corpus.zip fuzz_alg_bins_seed_corpus.zip fuzz_alg_hll_seed_corpus.zip fuzz_alg_jitter_seed_corpus.zip fuzz_ds_libcache_seed_corpus.zip fuzz_community_id_seed_corpus.zip fuzz_ds_tree_seed_corpus.zip fuzz_serialization_seed_corpus.zip fuzz_ds_ptree_seed_corpus.zip fuzz_alg_crc32_md5_seed_corpus.zip fuzz_alg_bytestream_seed_corpus.zip fuzz_libinjection_seed_corpus.zip fuzz_tls_certificate_seed_corpus.zip fuzz_filecfg_protocols_seed_corpus.zip fuzz_readerutils_workflow_seed_corpus.zip fuzz_readerutils_parseprotolist_seed_corpus.zip
+files_corpus_fuzz_ds_bitmap64 := $(wildcard corpus/fuzz_ds_bitmap64/*)
+fuzz_ds_bitmap64_seed_corpus.zip: $(files_corpus_fuzz_ds_bitmap64)
+ zip -j fuzz_ds_bitmap64_seed_corpus.zip $(files_corpus_fuzz_ds_bitmap64)
+
+files_corpus_fuzz_ds_domain_classify := $(wildcard corpus/fuzz_ds_domain_classify/*)
+fuzz_ds_domain_classify_seed_corpus.zip: $(files_corpus_fuzz_ds_domain_classify)
+ zip -j fuzz_ds_domain_classify_seed_corpus.zip $(files_corpus_fuzz_ds_domain_classify)
+
+corpus: fuzz_ndpi_reader_seed_corpus.zip fuzz_ndpi_reader_alloc_fail_seed_corpus.zip fuzz_ndpi_reader_payload_analyzer_seed_corpus.zip fuzz_quic_get_crypto_data_seed_corpus.zip fuzz_config_seed_corpus.zip fuzz_ds_patricia_seed_corpus.zip fuzz_ds_ahocorasick_seed_corpus.zip fuzz_alg_ses_des_seed_corpus.zip fuzz_alg_hw_rsi_outliers_da_seed_corpus.zip fuzz_alg_bins_seed_corpus.zip fuzz_alg_hll_seed_corpus.zip fuzz_alg_jitter_seed_corpus.zip fuzz_ds_libcache_seed_corpus.zip fuzz_community_id_seed_corpus.zip fuzz_ds_tree_seed_corpus.zip fuzz_serialization_seed_corpus.zip fuzz_ds_ptree_seed_corpus.zip fuzz_alg_crc32_md5_seed_corpus.zip fuzz_alg_bytestream_seed_corpus.zip fuzz_libinjection_seed_corpus.zip fuzz_tls_certificate_seed_corpus.zip fuzz_filecfg_protocols_seed_corpus.zip fuzz_readerutils_workflow_seed_corpus.zip fuzz_readerutils_parseprotolist_seed_corpus.zip fuzz_ds_bitmap64_seed_corpus.zip fuzz_ds_domain_classify_seed_corpus.zip
cp corpus/fuzz_*seed_corpus.zip .
#Create dictionaries exactly as expected by oss-fuzz.
@@ -588,6 +606,8 @@ distdir:
-o -path './corpus/fuzz_ds_ahocorasick/*' \
-o -path './corpus/fuzz_ds_libcache/*' \
-o -path './corpus/fuzz_ds_tree/*' \
+ -o -path './corpus/fuzz_ds_bitmap64/*' \
+ -o -path './corpus/fuzz_ds_domain_classify/*' \
-o -path './corpus/fuzz_ds_ptree/*' \
-o -path './corpus/fuzz_ds_patricia/*' | xargs -I'{}' cp -r '{}' '$(distdir)/{}'
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/000b6da044c11d100ffecc1c58f236a0c243f2c9 b/fuzz/corpus/fuzz_ds_bitmap64/000b6da044c11d100ffecc1c58f236a0c243f2c9
new file mode 100644
index 000000000..6e858d125
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/000b6da044c11d100ffecc1c58f236a0c243f2c9
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/03191cdd9d39fd9e9481819abe8096d3cd8dcaa9 b/fuzz/corpus/fuzz_ds_bitmap64/03191cdd9d39fd9e9481819abe8096d3cd8dcaa9
new file mode 100644
index 000000000..2758a2ba4
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/03191cdd9d39fd9e9481819abe8096d3cd8dcaa9
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/0b085fb6da7814c2e70c22ca0221090b8bf4002c b/fuzz/corpus/fuzz_ds_bitmap64/0b085fb6da7814c2e70c22ca0221090b8bf4002c
new file mode 100644
index 000000000..1ade82114
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/0b085fb6da7814c2e70c22ca0221090b8bf4002c
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/0c78f9445a26753487132bc34b2fa5526b82357b b/fuzz/corpus/fuzz_ds_bitmap64/0c78f9445a26753487132bc34b2fa5526b82357b
new file mode 100644
index 000000000..1aa2657a9
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/0c78f9445a26753487132bc34b2fa5526b82357b
@@ -0,0 +1 @@
+ @!~kɇ˝>- \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/0c9acbe4dba896e14dbaaf1063b4b445d2fd8f53 b/fuzz/corpus/fuzz_ds_bitmap64/0c9acbe4dba896e14dbaaf1063b4b445d2fd8f53
new file mode 100644
index 000000000..33453b4b8
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/0c9acbe4dba896e14dbaaf1063b4b445d2fd8f53
@@ -0,0 +1 @@
+N! \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/0ccd0d0397766b982826f7cf9115f97018a62466 b/fuzz/corpus/fuzz_ds_bitmap64/0ccd0d0397766b982826f7cf9115f97018a62466
new file mode 100644
index 000000000..83dd483d2
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/0ccd0d0397766b982826f7cf9115f97018a62466
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/0db99f086dca27ead6b42db91de404061b623981 b/fuzz/corpus/fuzz_ds_bitmap64/0db99f086dca27ead6b42db91de404061b623981
new file mode 100644
index 000000000..cdb40da90
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/0db99f086dca27ead6b42db91de404061b623981
@@ -0,0 +1 @@
+NKٻ8L@ҝZQ;Z骀Me~)>7 \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/0eff7f526d9e547a3fd3fc0bfbaefa1e686ec9ec b/fuzz/corpus/fuzz_ds_bitmap64/0eff7f526d9e547a3fd3fc0bfbaefa1e686ec9ec
new file mode 100644
index 000000000..e21f4ad0f
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/0eff7f526d9e547a3fd3fc0bfbaefa1e686ec9ec
@@ -0,0 +1 @@
+K? \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/10c27c41df755669fc42b71d295eda528c02f5b6 b/fuzz/corpus/fuzz_ds_bitmap64/10c27c41df755669fc42b71d295eda528c02f5b6
new file mode 100644
index 000000000..d40472301
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/10c27c41df755669fc42b71d295eda528c02f5b6
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/10f0aadbed8649c5917a9d90a1483a30ad83793f b/fuzz/corpus/fuzz_ds_bitmap64/10f0aadbed8649c5917a9d90a1483a30ad83793f
new file mode 100644
index 000000000..552d70d2a
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/10f0aadbed8649c5917a9d90a1483a30ad83793f
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/2730ef1769e66315391286ab579e13efc1baa670 b/fuzz/corpus/fuzz_ds_bitmap64/2730ef1769e66315391286ab579e13efc1baa670
new file mode 100644
index 000000000..efd0701f9
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/2730ef1769e66315391286ab579e13efc1baa670
@@ -0,0 +1 @@
+z \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/27e24cb43045da83ad481dd8c6cd38de1bd359fc b/fuzz/corpus/fuzz_ds_bitmap64/27e24cb43045da83ad481dd8c6cd38de1bd359fc
new file mode 100644
index 000000000..b0fda9f66
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/27e24cb43045da83ad481dd8c6cd38de1bd359fc
@@ -0,0 +1 @@
+ݟK? \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/28005384ac31d00f0dce884ff065f66c76bc391b b/fuzz/corpus/fuzz_ds_bitmap64/28005384ac31d00f0dce884ff065f66c76bc391b
new file mode 100644
index 000000000..7590bb32c
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/28005384ac31d00f0dce884ff065f66c76bc391b
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/2ac3872be3ae0f578da110d5580b362374676ef9 b/fuzz/corpus/fuzz_ds_bitmap64/2ac3872be3ae0f578da110d5580b362374676ef9
new file mode 100644
index 000000000..beb9fe490
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/2ac3872be3ae0f578da110d5580b362374676ef9
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/2e540ffd5bd997876f0d84bb1d760602514437d5 b/fuzz/corpus/fuzz_ds_bitmap64/2e540ffd5bd997876f0d84bb1d760602514437d5
new file mode 100644
index 000000000..1dd670bae
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/2e540ffd5bd997876f0d84bb1d760602514437d5
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/36f01f003e9a03de198ced6ad4ae919a5a9fd039 b/fuzz/corpus/fuzz_ds_bitmap64/36f01f003e9a03de198ced6ad4ae919a5a9fd039
new file mode 100644
index 000000000..3468266b4
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/36f01f003e9a03de198ced6ad4ae919a5a9fd039
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/375e36427a1552d8ff4d3c496296e4d2e52ae035 b/fuzz/corpus/fuzz_ds_bitmap64/375e36427a1552d8ff4d3c496296e4d2e52ae035
new file mode 100644
index 000000000..fa5bcc95d
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/375e36427a1552d8ff4d3c496296e4d2e52ae035
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/3af39359237047d1453f3a843348b1a53a7a480d b/fuzz/corpus/fuzz_ds_bitmap64/3af39359237047d1453f3a843348b1a53a7a480d
new file mode 100644
index 000000000..2e5040f8c
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/3af39359237047d1453f3a843348b1a53a7a480d
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/3c2fa67399fcc4c7de379137a631ac8278f5edc7 b/fuzz/corpus/fuzz_ds_bitmap64/3c2fa67399fcc4c7de379137a631ac8278f5edc7
new file mode 100644
index 000000000..c5c3c3c2b
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/3c2fa67399fcc4c7de379137a631ac8278f5edc7
@@ -0,0 +1 @@
+NK! ԉkӒ \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/3de96d39842d29fa7c63589ecbfd2b652b329334 b/fuzz/corpus/fuzz_ds_bitmap64/3de96d39842d29fa7c63589ecbfd2b652b329334
new file mode 100644
index 000000000..937953c59
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/3de96d39842d29fa7c63589ecbfd2b652b329334
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/448fdcde54b118a62f7a53c134a35ca447c0e762 b/fuzz/corpus/fuzz_ds_bitmap64/448fdcde54b118a62f7a53c134a35ca447c0e762
new file mode 100644
index 000000000..4b77a8573
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/448fdcde54b118a62f7a53c134a35ca447c0e762
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/485cc776ea8d113e993d911e39ebbe089669f949 b/fuzz/corpus/fuzz_ds_bitmap64/485cc776ea8d113e993d911e39ebbe089669f949
new file mode 100644
index 000000000..b9d7cf725
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/485cc776ea8d113e993d911e39ebbe089669f949
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/486f2245c8e26f0f769ab53503d6d7bc5d15c97b b/fuzz/corpus/fuzz_ds_bitmap64/486f2245c8e26f0f769ab53503d6d7bc5d15c97b
new file mode 100644
index 000000000..82e64f77a
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/486f2245c8e26f0f769ab53503d6d7bc5d15c97b
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/4b7cc42c02089c817ff610eb65d149356d96062a b/fuzz/corpus/fuzz_ds_bitmap64/4b7cc42c02089c817ff610eb65d149356d96062a
new file mode 100644
index 000000000..bbc5ce21e
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/4b7cc42c02089c817ff610eb65d149356d96062a
@@ -0,0 +1 @@
+*:BX ݷbnPp*;N': \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/539e28d50616971ae880b07df55661945966626c b/fuzz/corpus/fuzz_ds_bitmap64/539e28d50616971ae880b07df55661945966626c
new file mode 100644
index 000000000..1b5878df0
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/539e28d50616971ae880b07df55661945966626c
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/5e3bfa52c5d6a5e3cb2288fa9c58dd09b546f2ba b/fuzz/corpus/fuzz_ds_bitmap64/5e3bfa52c5d6a5e3cb2288fa9c58dd09b546f2ba
new file mode 100644
index 000000000..b7b5c063a
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/5e3bfa52c5d6a5e3cb2288fa9c58dd09b546f2ba
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/60c5f54695042fd2d6e0b97bddf3e55f8c9807b7 b/fuzz/corpus/fuzz_ds_bitmap64/60c5f54695042fd2d6e0b97bddf3e55f8c9807b7
new file mode 100644
index 000000000..55b3b9311
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/60c5f54695042fd2d6e0b97bddf3e55f8c9807b7
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/6886bfb6a9cb9398e4dfbf0fa4fb909148d442a1 b/fuzz/corpus/fuzz_ds_bitmap64/6886bfb6a9cb9398e4dfbf0fa4fb909148d442a1
new file mode 100644
index 000000000..a1a97a72b
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/6886bfb6a9cb9398e4dfbf0fa4fb909148d442a1
@@ -0,0 +1 @@
+R \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/6e97172624f802febb1f68d357254e768810efc6 b/fuzz/corpus/fuzz_ds_bitmap64/6e97172624f802febb1f68d357254e768810efc6
new file mode 100644
index 000000000..35b9f61ac
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/6e97172624f802febb1f68d357254e768810efc6
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/6f103d053753b48191a50676b186154388fd90ce b/fuzz/corpus/fuzz_ds_bitmap64/6f103d053753b48191a50676b186154388fd90ce
new file mode 100644
index 000000000..7ca663399
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/6f103d053753b48191a50676b186154388fd90ce
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/6fb915c4967d2d8b03c3cbc6e65aa247ea94dde3 b/fuzz/corpus/fuzz_ds_bitmap64/6fb915c4967d2d8b03c3cbc6e65aa247ea94dde3
new file mode 100644
index 000000000..91aab7e5b
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/6fb915c4967d2d8b03c3cbc6e65aa247ea94dde3
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/707c8ca3c49e1519254f90d69626a4cd351b45ca b/fuzz/corpus/fuzz_ds_bitmap64/707c8ca3c49e1519254f90d69626a4cd351b45ca
new file mode 100644
index 000000000..17fe2b432
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/707c8ca3c49e1519254f90d69626a4cd351b45ca
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/75c56111e67252f6b544aabf055ef7113f44891e b/fuzz/corpus/fuzz_ds_bitmap64/75c56111e67252f6b544aabf055ef7113f44891e
new file mode 100644
index 000000000..739ceed05
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/75c56111e67252f6b544aabf055ef7113f44891e
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/7b1b296a38fa941521b1ae5ada7f53fcb01616c5 b/fuzz/corpus/fuzz_ds_bitmap64/7b1b296a38fa941521b1ae5ada7f53fcb01616c5
new file mode 100644
index 000000000..72719d434
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/7b1b296a38fa941521b1ae5ada7f53fcb01616c5
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/8bb13e2f178a7da1580dbcf426885e6ac861a609 b/fuzz/corpus/fuzz_ds_bitmap64/8bb13e2f178a7da1580dbcf426885e6ac861a609
new file mode 100644
index 000000000..15d2ec270
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/8bb13e2f178a7da1580dbcf426885e6ac861a609
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/8dfde24023b6377ec411016db54890ad58370d9c b/fuzz/corpus/fuzz_ds_bitmap64/8dfde24023b6377ec411016db54890ad58370d9c
new file mode 100644
index 000000000..1b4e0d294
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/8dfde24023b6377ec411016db54890ad58370d9c
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/90f53e4946ded91eedeffe75747a9118d747d029 b/fuzz/corpus/fuzz_ds_bitmap64/90f53e4946ded91eedeffe75747a9118d747d029
new file mode 100644
index 000000000..942f79517
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/90f53e4946ded91eedeffe75747a9118d747d029
@@ -0,0 +1 @@
+1R \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/920da1a4cec774e0de02ebf54087099de7658cdb b/fuzz/corpus/fuzz_ds_bitmap64/920da1a4cec774e0de02ebf54087099de7658cdb
new file mode 100644
index 000000000..c31d9caea
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/920da1a4cec774e0de02ebf54087099de7658cdb
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/96996a3adf736a9044a04c5d8acd73e385b1bc6b b/fuzz/corpus/fuzz_ds_bitmap64/96996a3adf736a9044a04c5d8acd73e385b1bc6b
new file mode 100644
index 000000000..1f39c2362
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/96996a3adf736a9044a04c5d8acd73e385b1bc6b
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/9e55233a97010a5a3f2dfad360e5c8a3e2d9b8ef b/fuzz/corpus/fuzz_ds_bitmap64/9e55233a97010a5a3f2dfad360e5c8a3e2d9b8ef
new file mode 100644
index 000000000..2c734f55c
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/9e55233a97010a5a3f2dfad360e5c8a3e2d9b8ef
@@ -0,0 +1 @@
+PPPPPPPPPPNPPPPPPPPPPPPPPPPPPPPPPPPPPNPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP'_Ӓ \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/9f28a467c09155c799c880706286180fc50ee0a2 b/fuzz/corpus/fuzz_ds_bitmap64/9f28a467c09155c799c880706286180fc50ee0a2
new file mode 100644
index 000000000..d70f7fe0e
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/9f28a467c09155c799c880706286180fc50ee0a2
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/a8fb1448425ca0cb6871ec51c67332eb2185159e b/fuzz/corpus/fuzz_ds_bitmap64/a8fb1448425ca0cb6871ec51c67332eb2185159e
new file mode 100644
index 000000000..c745c687e
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/a8fb1448425ca0cb6871ec51c67332eb2185159e
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/ab870e2c87f40df57d2aeb9a035f6f55b3486261 b/fuzz/corpus/fuzz_ds_bitmap64/ab870e2c87f40df57d2aeb9a035f6f55b3486261
new file mode 100644
index 000000000..55a73792d
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/ab870e2c87f40df57d2aeb9a035f6f55b3486261
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/aca80cb5b3b214b3273623a383678e3e66eece2b b/fuzz/corpus/fuzz_ds_bitmap64/aca80cb5b3b214b3273623a383678e3e66eece2b
new file mode 100644
index 000000000..246262c24
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/aca80cb5b3b214b3273623a383678e3e66eece2b
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/afa1100989a7a625fe7bbf39e09a296c53a5572c b/fuzz/corpus/fuzz_ds_bitmap64/afa1100989a7a625fe7bbf39e09a296c53a5572c
new file mode 100644
index 000000000..55854c0cf
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/afa1100989a7a625fe7bbf39e09a296c53a5572c
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/aff44f8008132c50796911f5f52f1e2307c2a858 b/fuzz/corpus/fuzz_ds_bitmap64/aff44f8008132c50796911f5f52f1e2307c2a858
new file mode 100644
index 000000000..6c769fd18
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/aff44f8008132c50796911f5f52f1e2307c2a858
@@ -0,0 +1 @@
+2 R \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/b51a60734da64be0e618bacbea2865a8a7dcd669 b/fuzz/corpus/fuzz_ds_bitmap64/b51a60734da64be0e618bacbea2865a8a7dcd669
new file mode 100644
index 000000000..2f94675b7
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/b51a60734da64be0e618bacbea2865a8a7dcd669
@@ -0,0 +1 @@
+N \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/b5c0fdf0969f9ad91e127670d76df252e6e6b1d9 b/fuzz/corpus/fuzz_ds_bitmap64/b5c0fdf0969f9ad91e127670d76df252e6e6b1d9
new file mode 100644
index 000000000..f1b41d102
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/b5c0fdf0969f9ad91e127670d76df252e6e6b1d9
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/b5d2b5145a6066fd0429e1236dd08fff307122ab b/fuzz/corpus/fuzz_ds_bitmap64/b5d2b5145a6066fd0429e1236dd08fff307122ab
new file mode 100644
index 000000000..fea6e080c
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/b5d2b5145a6066fd0429e1236dd08fff307122ab
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/b5f6e6294cc83f68f906cdc5195a45c30ce11121 b/fuzz/corpus/fuzz_ds_bitmap64/b5f6e6294cc83f68f906cdc5195a45c30ce11121
new file mode 100644
index 000000000..fc66b353c
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/b5f6e6294cc83f68f906cdc5195a45c30ce11121
@@ -0,0 +1 @@
+!ĉMe'Ӓ \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/b8dbebe13b9f719baae6afc13a3ee01846c33089 b/fuzz/corpus/fuzz_ds_bitmap64/b8dbebe13b9f719baae6afc13a3ee01846c33089
new file mode 100644
index 000000000..13aadd727
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/b8dbebe13b9f719baae6afc13a3ee01846c33089
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/c03aa82eaa3d73636a44653b05f2aa83d465ae32 b/fuzz/corpus/fuzz_ds_bitmap64/c03aa82eaa3d73636a44653b05f2aa83d465ae32
new file mode 100644
index 000000000..9d44a9f94
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/c03aa82eaa3d73636a44653b05f2aa83d465ae32
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/c4fcead253b3a6ea0ebb48397751d2439b1f489f b/fuzz/corpus/fuzz_ds_bitmap64/c4fcead253b3a6ea0ebb48397751d2439b1f489f
new file mode 100644
index 000000000..dbeb7ca0c
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/c4fcead253b3a6ea0ebb48397751d2439b1f489f
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/c50e5229c745fc00ea982d7e31a21501362ae054 b/fuzz/corpus/fuzz_ds_bitmap64/c50e5229c745fc00ea982d7e31a21501362ae054
new file mode 100644
index 000000000..84cb14d22
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/c50e5229c745fc00ea982d7e31a21501362ae054
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/cedb4282204e8a6469f370e6ed6b082ba0017b54 b/fuzz/corpus/fuzz_ds_bitmap64/cedb4282204e8a6469f370e6ed6b082ba0017b54
new file mode 100644
index 000000000..17f2335a0
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/cedb4282204e8a6469f370e6ed6b082ba0017b54
@@ -0,0 +1 @@
+NK! NK! \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/d39a8fafd0e4a957003dcbc8ca23e48e9640aaba b/fuzz/corpus/fuzz_ds_bitmap64/d39a8fafd0e4a957003dcbc8ca23e48e9640aaba
new file mode 100644
index 000000000..f97878f51
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/d39a8fafd0e4a957003dcbc8ca23e48e9640aaba
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/d58f4b573cd04c2ff3df7487ca8c5bc942335a30 b/fuzz/corpus/fuzz_ds_bitmap64/d58f4b573cd04c2ff3df7487ca8c5bc942335a30
new file mode 100644
index 000000000..f5d4f9dff
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/d58f4b573cd04c2ff3df7487ca8c5bc942335a30
@@ -0,0 +1 @@
+2 R \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/d9739412222ab242871c5292f12e5556e779a9c8 b/fuzz/corpus/fuzz_ds_bitmap64/d9739412222ab242871c5292f12e5556e779a9c8
new file mode 100644
index 000000000..7a8739c9a
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/d9739412222ab242871c5292f12e5556e779a9c8
@@ -0,0 +1 @@
+N! \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/e20b515e8276f7bb16141e37b25d231266840ce3 b/fuzz/corpus/fuzz_ds_bitmap64/e20b515e8276f7bb16141e37b25d231266840ce3
new file mode 100644
index 000000000..19600110d
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/e20b515e8276f7bb16141e37b25d231266840ce3
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/e4e2d81d9c15ac2493c5014d584721366dd38af8 b/fuzz/corpus/fuzz_ds_bitmap64/e4e2d81d9c15ac2493c5014d584721366dd38af8
new file mode 100644
index 000000000..f305e39c3
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/e4e2d81d9c15ac2493c5014d584721366dd38af8
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/e54dbe399501a4027fdd3e2bcd547b4ba8699d00 b/fuzz/corpus/fuzz_ds_bitmap64/e54dbe399501a4027fdd3e2bcd547b4ba8699d00
new file mode 100644
index 000000000..672a551ff
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/e54dbe399501a4027fdd3e2bcd547b4ba8699d00
@@ -0,0 +1 @@
+E? \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/eefc0d805828e9bd300c2ce9370e32554a93d79a b/fuzz/corpus/fuzz_ds_bitmap64/eefc0d805828e9bd300c2ce9370e32554a93d79a
new file mode 100644
index 000000000..8faa665d5
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/eefc0d805828e9bd300c2ce9370e32554a93d79a
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/ef1f8773349d15d2c581642068b3b06206a2b43e b/fuzz/corpus/fuzz_ds_bitmap64/ef1f8773349d15d2c581642068b3b06206a2b43e
new file mode 100644
index 000000000..ad35998e3
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/ef1f8773349d15d2c581642068b3b06206a2b43e
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/f0c957104bb1b80c9d125d9c8cbb3f06fbf2ab1a b/fuzz/corpus/fuzz_ds_bitmap64/f0c957104bb1b80c9d125d9c8cbb3f06fbf2ab1a
new file mode 100644
index 000000000..ded2df2a5
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/f0c957104bb1b80c9d125d9c8cbb3f06fbf2ab1a
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/f1c09f190bf77d120a0e539412bbd9fa70af062f b/fuzz/corpus/fuzz_ds_bitmap64/f1c09f190bf77d120a0e539412bbd9fa70af062f
new file mode 100644
index 000000000..ef42a3e51
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/f1c09f190bf77d120a0e539412bbd9fa70af062f
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/f4643e6de35a287e7ccc44126aabd147f86bff26 b/fuzz/corpus/fuzz_ds_bitmap64/f4643e6de35a287e7ccc44126aabd147f86bff26
new file mode 100644
index 000000000..46351556b
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/f4643e6de35a287e7ccc44126aabd147f86bff26
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/fa5b31c6f43981ff6a304189345466790de5a10b b/fuzz/corpus/fuzz_ds_bitmap64/fa5b31c6f43981ff6a304189345466790de5a10b
new file mode 100644
index 000000000..8fb85d223
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/fa5b31c6f43981ff6a304189345466790de5a10b
@@ -0,0 +1 @@
+NK? \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_bitmap64/fb8f2cb93bb8e3215593ea1395a6ec62c627ed87 b/fuzz/corpus/fuzz_ds_bitmap64/fb8f2cb93bb8e3215593ea1395a6ec62c627ed87
new file mode 100644
index 000000000..20d96d851
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_bitmap64/fb8f2cb93bb8e3215593ea1395a6ec62c627ed87
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/0763c17eddc590407feeca191d3592c1961bfc2a b/fuzz/corpus/fuzz_ds_domain_classify/0763c17eddc590407feeca191d3592c1961bfc2a
new file mode 100644
index 000000000..f6a2218c2
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/0763c17eddc590407feeca191d3592c1961bfc2a
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/094d98b399bf4ace7b8899ab7081e867fb03f869 b/fuzz/corpus/fuzz_ds_domain_classify/094d98b399bf4ace7b8899ab7081e867fb03f869
new file mode 100644
index 000000000..c96ab3cc7
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/094d98b399bf4ace7b8899ab7081e867fb03f869
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/11952b9dbc937aad9ee4ab4558bbf453ba29c3e6 b/fuzz/corpus/fuzz_ds_domain_classify/11952b9dbc937aad9ee4ab4558bbf453ba29c3e6
new file mode 100644
index 000000000..bf1a383f0
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/11952b9dbc937aad9ee4ab4558bbf453ba29c3e6
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/1489f923c4dca729178b3e3233458550d8dddf29 b/fuzz/corpus/fuzz_ds_domain_classify/1489f923c4dca729178b3e3233458550d8dddf29
new file mode 100644
index 000000000..09f370e38
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/1489f923c4dca729178b3e3233458550d8dddf29
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/171af5b11ede78dd8b5ec564ebfbe7f67a0d00f6 b/fuzz/corpus/fuzz_ds_domain_classify/171af5b11ede78dd8b5ec564ebfbe7f67a0d00f6
new file mode 100644
index 000000000..f0fc07b17
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/171af5b11ede78dd8b5ec564ebfbe7f67a0d00f6
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/1a95536cfa43be767a4c275a39b7be4808e9089c b/fuzz/corpus/fuzz_ds_domain_classify/1a95536cfa43be767a4c275a39b7be4808e9089c
new file mode 100644
index 000000000..ac7ac5f06
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/1a95536cfa43be767a4c275a39b7be4808e9089c
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/1c19ecde3ec34849b56eaf7644891b363aed140a b/fuzz/corpus/fuzz_ds_domain_classify/1c19ecde3ec34849b56eaf7644891b363aed140a
new file mode 100644
index 000000000..80d0004a8
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/1c19ecde3ec34849b56eaf7644891b363aed140a
@@ -0,0 +1 @@
+C^ѓ,D"֝.N(%+x] \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/2238a1ca2a865dd629a955573bc6865f5703e043 b/fuzz/corpus/fuzz_ds_domain_classify/2238a1ca2a865dd629a955573bc6865f5703e043
new file mode 100644
index 000000000..698b2bcb3
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/2238a1ca2a865dd629a955573bc6865f5703e043
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/268609400f747aab608d7341377633a218292a8b b/fuzz/corpus/fuzz_ds_domain_classify/268609400f747aab608d7341377633a218292a8b
new file mode 100644
index 000000000..92b73e50d
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/268609400f747aab608d7341377633a218292a8b
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/29c5ad6b994594b24efdeff0aded2b170573d804 b/fuzz/corpus/fuzz_ds_domain_classify/29c5ad6b994594b24efdeff0aded2b170573d804
new file mode 100644
index 000000000..b78dddf9a
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/29c5ad6b994594b24efdeff0aded2b170573d804
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/29e50e32fad939cfb4f81e41babf701b62ae9e35 b/fuzz/corpus/fuzz_ds_domain_classify/29e50e32fad939cfb4f81e41babf701b62ae9e35
new file mode 100644
index 000000000..0c43fb5d2
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/29e50e32fad939cfb4f81e41babf701b62ae9e35
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/2bb953bdd42b4e1f04bd8e0be26ef8cfc77b686f b/fuzz/corpus/fuzz_ds_domain_classify/2bb953bdd42b4e1f04bd8e0be26ef8cfc77b686f
new file mode 100644
index 000000000..8e8ad7dc3
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/2bb953bdd42b4e1f04bd8e0be26ef8cfc77b686f
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/2d0134ed3b9de132c720fe697b532b4c232ff9fe b/fuzz/corpus/fuzz_ds_domain_classify/2d0134ed3b9de132c720fe697b532b4c232ff9fe
new file mode 100644
index 000000000..f8fa5a235
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/2d0134ed3b9de132c720fe697b532b4c232ff9fe
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/304ffc88b8aba511ba115643aaca30a57cf3a39f b/fuzz/corpus/fuzz_ds_domain_classify/304ffc88b8aba511ba115643aaca30a57cf3a39f
new file mode 100644
index 000000000..3e4c1a738
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/304ffc88b8aba511ba115643aaca30a57cf3a39f
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/334b5776531596fbf87f4003b59e59eed55fc064 b/fuzz/corpus/fuzz_ds_domain_classify/334b5776531596fbf87f4003b59e59eed55fc064
new file mode 100644
index 000000000..e4eed245d
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/334b5776531596fbf87f4003b59e59eed55fc064
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/339145dd705eaa3a3507c66682f4af74d8992de7 b/fuzz/corpus/fuzz_ds_domain_classify/339145dd705eaa3a3507c66682f4af74d8992de7
new file mode 100644
index 000000000..fab42cc21
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/339145dd705eaa3a3507c66682f4af74d8992de7
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/39f0e3be6ce5f0f68b2f4980f49d33a8eddceffe b/fuzz/corpus/fuzz_ds_domain_classify/39f0e3be6ce5f0f68b2f4980f49d33a8eddceffe
new file mode 100644
index 000000000..3931ef403
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/39f0e3be6ce5f0f68b2f4980f49d33a8eddceffe
@@ -0,0 +1 @@
+. \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/418b6bf6865a11f3aea753a7bc424f14c324ad02 b/fuzz/corpus/fuzz_ds_domain_classify/418b6bf6865a11f3aea753a7bc424f14c324ad02
new file mode 100644
index 000000000..33526c353
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/418b6bf6865a11f3aea753a7bc424f14c324ad02
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/437fafa21180ba3e97eee66d9f0d6e7ee384c792 b/fuzz/corpus/fuzz_ds_domain_classify/437fafa21180ba3e97eee66d9f0d6e7ee384c792
new file mode 100644
index 000000000..a86a89547
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/437fafa21180ba3e97eee66d9f0d6e7ee384c792
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/438b9c851cab4d3000cf67e9c79f61102cf0edf7 b/fuzz/corpus/fuzz_ds_domain_classify/438b9c851cab4d3000cf67e9c79f61102cf0edf7
new file mode 100644
index 000000000..49c5007bb
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/438b9c851cab4d3000cf67e9c79f61102cf0edf7
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/4887d5f71acee372a80a51f854db00a9ac6ad4b1 b/fuzz/corpus/fuzz_ds_domain_classify/4887d5f71acee372a80a51f854db00a9ac6ad4b1
new file mode 100644
index 000000000..96871adfa
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/4887d5f71acee372a80a51f854db00a9ac6ad4b1
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/511856a6624c10a5b873c94c9c353d7c40f55d13 b/fuzz/corpus/fuzz_ds_domain_classify/511856a6624c10a5b873c94c9c353d7c40f55d13
new file mode 100644
index 000000000..1e51bb1e4
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/511856a6624c10a5b873c94c9c353d7c40f55d13
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/548d725eefec486a240420c2a2a052719f6abdfb b/fuzz/corpus/fuzz_ds_domain_classify/548d725eefec486a240420c2a2a052719f6abdfb
new file mode 100644
index 000000000..5f2a0f689
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/548d725eefec486a240420c2a2a052719f6abdfb
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/54a5dc7b5a3c176c8a7860763016b099851a7177 b/fuzz/corpus/fuzz_ds_domain_classify/54a5dc7b5a3c176c8a7860763016b099851a7177
new file mode 100644
index 000000000..4bf196975
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/54a5dc7b5a3c176c8a7860763016b099851a7177
@@ -0,0 +1,2 @@
+^:qր<7j.qMObq+u5fu8%wN[{SumӌGC6s?#@-AC*{ZuXxUbC,Q,Zٷ-(ܹ8L5ɜf'/ы,V$+GdNī\uӱ  ?!b,63?Z1~ CuE8em.#########################################################################YD%<SG9; @}~^噶/ĸ igc5˷Vgłi$>8UOQAXyϦCT 0;7LS]-.o';:S2<qD``*_&Ѳ֑Xͽfdd]%<Pp[EuN&[,OA376j0YFERե +G%6rrD֝.N(+x9gQ?Y*;mz>]:`j^
+*cUc}wtI?,;n{j5OM?($P.vl\ODMzVEe\1b4M7]E4#k7 f?׫)t#Go+=`i^~3Sh̑°L}GXÉh.:$l^ڲp$\,q& ^xc$"Lu|!I`߉(vPl4Pm djO<Co[6ӄJx?~L_cy鼬%Nvױo'eHVnqhxBvw+a._X6IʙZ$T3IZTɠ()췌iZٷ-(ܹ8L5ɜf'/=ы,V$+GdNī\uӱ  ?!b,63?Z1~ CuE8em.################################################"########################YD%<SG9; @}~^噶/aL=ST2墯Eae 'ʣ=.`|7e_$Bc0m2b}8jJZC\?ăS43'f/c|zyHѭx\<,r;Da \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/569797426145c8f97a79507f55a3643380fef99a b/fuzz/corpus/fuzz_ds_domain_classify/569797426145c8f97a79507f55a3643380fef99a
new file mode 100644
index 000000000..6df0da8d7
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/569797426145c8f97a79507f55a3643380fef99a
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/5793d2e18f5e5da0e1ad0dd0d653a07d99697629 b/fuzz/corpus/fuzz_ds_domain_classify/5793d2e18f5e5da0e1ad0dd0d653a07d99697629
new file mode 100644
index 000000000..71a78bc83
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/5793d2e18f5e5da0e1ad0dd0d653a07d99697629
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/5ba93c9db0cff93f52b521d7420e43f6eda2784f b/fuzz/corpus/fuzz_ds_domain_classify/5ba93c9db0cff93f52b521d7420e43f6eda2784f
new file mode 100644
index 000000000..f76dd238a
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/5ba93c9db0cff93f52b521d7420e43f6eda2784f
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/5d7b38594b7e96fc7fecbda28e918247815d18e8 b/fuzz/corpus/fuzz_ds_domain_classify/5d7b38594b7e96fc7fecbda28e918247815d18e8
new file mode 100644
index 000000000..d555d7327
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/5d7b38594b7e96fc7fecbda28e918247815d18e8
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/60f8bf8d92afec3747e8dcb0268b2a71e43307a1 b/fuzz/corpus/fuzz_ds_domain_classify/60f8bf8d92afec3747e8dcb0268b2a71e43307a1
new file mode 100644
index 000000000..c8f6b58fa
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/60f8bf8d92afec3747e8dcb0268b2a71e43307a1
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/64b68bf5b882b9bd0b37267287980ecfa0e44a85 b/fuzz/corpus/fuzz_ds_domain_classify/64b68bf5b882b9bd0b37267287980ecfa0e44a85
new file mode 100644
index 000000000..8cbf1afc6
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/64b68bf5b882b9bd0b37267287980ecfa0e44a85
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/659f0d816b309d7b36420e455dac2b72c422e043 b/fuzz/corpus/fuzz_ds_domain_classify/659f0d816b309d7b36420e455dac2b72c422e043
new file mode 100644
index 000000000..8d7190237
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/659f0d816b309d7b36420e455dac2b72c422e043
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/6764243865a15be7f67e674e753117df9e682e92 b/fuzz/corpus/fuzz_ds_domain_classify/6764243865a15be7f67e674e753117df9e682e92
new file mode 100644
index 000000000..f9ecbaa3b
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/6764243865a15be7f67e674e753117df9e682e92
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/6b303cb9736917e6770d242b54d3c264b1c3a163 b/fuzz/corpus/fuzz_ds_domain_classify/6b303cb9736917e6770d242b54d3c264b1c3a163
new file mode 100644
index 000000000..96af227e0
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/6b303cb9736917e6770d242b54d3c264b1c3a163
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/76a3b04816a0d02bd8f62f10100d8d3fcd8f7870 b/fuzz/corpus/fuzz_ds_domain_classify/76a3b04816a0d02bd8f62f10100d8d3fcd8f7870
new file mode 100644
index 000000000..22f211bc6
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/76a3b04816a0d02bd8f62f10100d8d3fcd8f7870
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/827128eea26a395dbd08c061d746ff72bf4d4237 b/fuzz/corpus/fuzz_ds_domain_classify/827128eea26a395dbd08c061d746ff72bf4d4237
new file mode 100644
index 000000000..7bf6641a6
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/827128eea26a395dbd08c061d746ff72bf4d4237
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/8b466a25395565bbc2c00e55043fe8a990763b5c b/fuzz/corpus/fuzz_ds_domain_classify/8b466a25395565bbc2c00e55043fe8a990763b5c
new file mode 100644
index 000000000..cae8552a3
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/8b466a25395565bbc2c00e55043fe8a990763b5c
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/8eaa6a4ea0565df425174b7dd73447aba400757d b/fuzz/corpus/fuzz_ds_domain_classify/8eaa6a4ea0565df425174b7dd73447aba400757d
new file mode 100644
index 000000000..bae8468b4
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/8eaa6a4ea0565df425174b7dd73447aba400757d
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/8ed36d145e9179de1f587e1c342ab505132b1b19 b/fuzz/corpus/fuzz_ds_domain_classify/8ed36d145e9179de1f587e1c342ab505132b1b19
new file mode 100644
index 000000000..edfb56baa
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/8ed36d145e9179de1f587e1c342ab505132b1b19
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/916b6aa0dd2152617f811bfae99f244c5ae4ced2 b/fuzz/corpus/fuzz_ds_domain_classify/916b6aa0dd2152617f811bfae99f244c5ae4ced2
new file mode 100644
index 000000000..3b3e54367
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/916b6aa0dd2152617f811bfae99f244c5ae4ced2
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/917e18eaa6fa97734a052608c2544b0484284b02 b/fuzz/corpus/fuzz_ds_domain_classify/917e18eaa6fa97734a052608c2544b0484284b02
new file mode 100644
index 000000000..10a2ec970
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/917e18eaa6fa97734a052608c2544b0484284b02
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/9842926af7ca0a8cca12604f945414f07b01e13d b/fuzz/corpus/fuzz_ds_domain_classify/9842926af7ca0a8cca12604f945414f07b01e13d
new file mode 100644
index 000000000..fc2b5693e
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/9842926af7ca0a8cca12604f945414f07b01e13d
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/9ac9505d7081e5c6a37b859f9272570244a0f98c b/fuzz/corpus/fuzz_ds_domain_classify/9ac9505d7081e5c6a37b859f9272570244a0f98c
new file mode 100644
index 000000000..2fff8c20e
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/9ac9505d7081e5c6a37b859f9272570244a0f98c
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/9f6be58219b7645ceeb3535f9300b1b4fc17de61 b/fuzz/corpus/fuzz_ds_domain_classify/9f6be58219b7645ceeb3535f9300b1b4fc17de61
new file mode 100644
index 000000000..4d82afa77
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/9f6be58219b7645ceeb3535f9300b1b4fc17de61
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/a42c6cf1de3abfdea9b95f34687cbbe92b9a7383 b/fuzz/corpus/fuzz_ds_domain_classify/a42c6cf1de3abfdea9b95f34687cbbe92b9a7383
new file mode 100644
index 000000000..45a8ca02b
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/a42c6cf1de3abfdea9b95f34687cbbe92b9a7383
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/a455fdcb5b79cb644de056827cc6158ca3a2ce44 b/fuzz/corpus/fuzz_ds_domain_classify/a455fdcb5b79cb644de056827cc6158ca3a2ce44
new file mode 100644
index 000000000..cd4a1816d
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/a455fdcb5b79cb644de056827cc6158ca3a2ce44
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/a760deb5c9a538e1c42fc3ffa650dc15dc8f8e25 b/fuzz/corpus/fuzz_ds_domain_classify/a760deb5c9a538e1c42fc3ffa650dc15dc8f8e25
new file mode 100644
index 000000000..07376002e
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/a760deb5c9a538e1c42fc3ffa650dc15dc8f8e25
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/acb68aea390eb6c65a4befd4d4f0a1e8dd2686cd b/fuzz/corpus/fuzz_ds_domain_classify/acb68aea390eb6c65a4befd4d4f0a1e8dd2686cd
new file mode 100644
index 000000000..a70c2f207
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/acb68aea390eb6c65a4befd4d4f0a1e8dd2686cd
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/ad34c510e307e6659ef99bf5bb030dd59907d5a7 b/fuzz/corpus/fuzz_ds_domain_classify/ad34c510e307e6659ef99bf5bb030dd59907d5a7
new file mode 100644
index 000000000..392acb714
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/ad34c510e307e6659ef99bf5bb030dd59907d5a7
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/b4f4214e3a75f34b3cde5a07511dc3fc28ee30d4 b/fuzz/corpus/fuzz_ds_domain_classify/b4f4214e3a75f34b3cde5a07511dc3fc28ee30d4
new file mode 100644
index 000000000..123bdfd3c
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/b4f4214e3a75f34b3cde5a07511dc3fc28ee30d4
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/b4f4ffee175644a5c3cd5f9e0e3a6a18e156803d b/fuzz/corpus/fuzz_ds_domain_classify/b4f4ffee175644a5c3cd5f9e0e3a6a18e156803d
new file mode 100644
index 000000000..e446a4648
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/b4f4ffee175644a5c3cd5f9e0e3a6a18e156803d
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/bec542f004a8a2401493dde5c8bbafe91644a0a1 b/fuzz/corpus/fuzz_ds_domain_classify/bec542f004a8a2401493dde5c8bbafe91644a0a1
new file mode 100644
index 000000000..42c0dede4
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/bec542f004a8a2401493dde5c8bbafe91644a0a1
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/bf8b4530d8d246dd74ac53a13471bba17941dff7 b/fuzz/corpus/fuzz_ds_domain_classify/bf8b4530d8d246dd74ac53a13471bba17941dff7
new file mode 100644
index 000000000..6b2aaa764
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/bf8b4530d8d246dd74ac53a13471bba17941dff7
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/c4ea21bb365bbeeaf5f2c654883e56d11e43c44e b/fuzz/corpus/fuzz_ds_domain_classify/c4ea21bb365bbeeaf5f2c654883e56d11e43c44e
new file mode 100644
index 000000000..25cb955ba
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/c4ea21bb365bbeeaf5f2c654883e56d11e43c44e
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/c7255dc48b42d44f6c0676d6009051b7e1aa885b b/fuzz/corpus/fuzz_ds_domain_classify/c7255dc48b42d44f6c0676d6009051b7e1aa885b
new file mode 100644
index 000000000..c30d0581b
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/c7255dc48b42d44f6c0676d6009051b7e1aa885b
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/d1224e1a17cd7e959396405e3b6c414f9734b45b b/fuzz/corpus/fuzz_ds_domain_classify/d1224e1a17cd7e959396405e3b6c414f9734b45b
new file mode 100644
index 000000000..72833c5e2
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/d1224e1a17cd7e959396405e3b6c414f9734b45b
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/da33e41954997c24ad31f6c1845e18510b384f67 b/fuzz/corpus/fuzz_ds_domain_classify/da33e41954997c24ad31f6c1845e18510b384f67
new file mode 100644
index 000000000..5d983463e
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/da33e41954997c24ad31f6c1845e18510b384f67
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/df6ada8a1eeef582869d1d938a8f1cd478d2fe67 b/fuzz/corpus/fuzz_ds_domain_classify/df6ada8a1eeef582869d1d938a8f1cd478d2fe67
new file mode 100644
index 000000000..2dc48a62f
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/df6ada8a1eeef582869d1d938a8f1cd478d2fe67
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/e8c6f79f570740561b8e423a7c8855ddeab8899b b/fuzz/corpus/fuzz_ds_domain_classify/e8c6f79f570740561b8e423a7c8855ddeab8899b
new file mode 100644
index 000000000..3916a98b6
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/e8c6f79f570740561b8e423a7c8855ddeab8899b
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/eae48a76748e7ea357ac1bd3f151e03910fc7704 b/fuzz/corpus/fuzz_ds_domain_classify/eae48a76748e7ea357ac1bd3f151e03910fc7704
new file mode 100644
index 000000000..38bb1b46d
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/eae48a76748e7ea357ac1bd3f151e03910fc7704
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/ed85b0a21a5eb7ee95c17254658bfea922035497 b/fuzz/corpus/fuzz_ds_domain_classify/ed85b0a21a5eb7ee95c17254658bfea922035497
new file mode 100644
index 000000000..21c774417
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/ed85b0a21a5eb7ee95c17254658bfea922035497
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/fad9e4c68a79cc7198543572432b34be868b443d b/fuzz/corpus/fuzz_ds_domain_classify/fad9e4c68a79cc7198543572432b34be868b443d
new file mode 100644
index 000000000..48ef711a9
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/fad9e4c68a79cc7198543572432b34be868b443d
Binary files differ
diff --git a/fuzz/corpus/fuzz_ds_domain_classify/fdaaa229ce19324a2adfaeee8f637a5f6e29719b b/fuzz/corpus/fuzz_ds_domain_classify/fdaaa229ce19324a2adfaeee8f637a5f6e29719b
new file mode 100644
index 000000000..215f24393
--- /dev/null
+++ b/fuzz/corpus/fuzz_ds_domain_classify/fdaaa229ce19324a2adfaeee8f637a5f6e29719b
@@ -0,0 +1 @@
+P \ No newline at end of file
diff --git a/fuzz/fuzz_alg_crc32_md5.c b/fuzz/fuzz_alg_crc32_md5.c
index b449941e2..1f45e476e 100644
--- a/fuzz/fuzz_alg_crc32_md5.c
+++ b/fuzz/fuzz_alg_crc32_md5.c
@@ -3,14 +3,32 @@
int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
u_char hash[16];
struct ndpi_popcount popcount;
+ char *str;
/* No memory allocations involved */
- /* Used for crc32, md5 and popcount algs */
+ /* Used for crc32, md5, hash(es) and popcount algs */
ndpi_crc32(data, size);
ndpi_md5(data, size, hash);
+ ndpi_murmur_hash((const char *)data, size);
+ ndpi_quick_hash(data, size);
+
+ str = ndpi_malloc(size + 1);
+ if(str) {
+ memcpy(str, data, size);
+ str[size] = '\0';
+
+ ndpi_quick_hash64((const char *)str, strlen(str));
+ ndpi_hash_string(str);
+ ndpi_rev_hash_string(str);
+ ndpi_hash_string_len(str, strlen(str));
+
+ ndpi_free(str);
+ }
+
+
ndpi_popcount_init(&popcount);
ndpi_popcount_count(&popcount, data, size);
diff --git a/fuzz/fuzz_ds_bitmap64.cpp b/fuzz/fuzz_ds_bitmap64.cpp
new file mode 100644
index 000000000..18a3fcb34
--- /dev/null
+++ b/fuzz/fuzz_ds_bitmap64.cpp
@@ -0,0 +1,54 @@
+#include "ndpi_api.h"
+#include "fuzz_common_code.h"
+
+#include <stdint.h>
+#include "fuzzer/FuzzedDataProvider.h"
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ FuzzedDataProvider fuzzed_data(data, size);
+ u_int16_t i, num_iteration, is_added = 0;
+ ndpi_bitmap64 *b;
+ bool rc;
+ u_int64_t value, value_added;
+
+ /* To allow memory allocation failures */
+ fuzz_set_alloc_callbacks_and_seed(size);
+
+ b = ndpi_bitmap64_alloc();
+
+ if(fuzzed_data.ConsumeBool())
+ ndpi_bitmap64_compress(b);
+
+ num_iteration = fuzzed_data.ConsumeIntegral<u_int16_t>();
+ for (i = 0; i < num_iteration; i++) {
+ value = fuzzed_data.ConsumeIntegral<u_int64_t>();
+
+ rc = ndpi_bitmap64_set(b, value);
+ /* Keep one random entry really added */
+ if (rc == true && is_added == 0 && fuzzed_data.ConsumeBool()) {
+ value_added = value;
+ is_added = 1;
+ }
+ }
+
+ if(fuzzed_data.ConsumeBool())
+ ndpi_bitmap64_compress(b);
+
+ /* "Random" search */
+ num_iteration = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ for (i = 0; i < num_iteration; i++) {
+ value = fuzzed_data.ConsumeIntegral<u_int64_t>();
+
+ ndpi_bitmap64_isset(b, value);
+ }
+ /* Search of an added entry */
+ if (is_added) {
+ ndpi_bitmap64_isset(b, value_added);
+ }
+
+ ndpi_bitmap64_size(b);
+
+ ndpi_bitmap64_free(b);
+
+ return 0;
+}
diff --git a/fuzz/fuzz_ds_domain_classify.cpp b/fuzz/fuzz_ds_domain_classify.cpp
new file mode 100644
index 000000000..afd43a796
--- /dev/null
+++ b/fuzz/fuzz_ds_domain_classify.cpp
@@ -0,0 +1,53 @@
+#include "ndpi_api.h"
+#include "fuzz_common_code.h"
+
+#include <stdint.h>
+#include <stdio.h>
+#include <assert.h>
+#include "fuzzer/FuzzedDataProvider.h"
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ FuzzedDataProvider fuzzed_data(data, size);
+ u_int16_t i, num_iteration, is_added = 0;
+ bool rc;
+ ndpi_domain_classify *d;
+ u_int8_t class_id;
+ std::string value, value_added;
+
+ /* To allow memory allocation failures */
+ fuzz_set_alloc_callbacks_and_seed(size);
+
+ d = ndpi_domain_classify_alloc();
+
+ num_iteration = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ for (i = 0; i < num_iteration; i++) {
+
+ value = fuzzed_data.ConsumeBytesAsString(fuzzed_data.ConsumeIntegral<u_int8_t>());
+ class_id = fuzzed_data.ConsumeIntegral<u_int8_t>();
+
+ rc = ndpi_domain_classify_add(d, class_id, value.c_str());
+ /* Keep one random entry really added */
+ if (rc == true && is_added == 0 && fuzzed_data.ConsumeBool()) {
+ value_added = value;
+ is_added = 1;
+ }
+ }
+
+ /* "Random" search */
+ num_iteration = fuzzed_data.ConsumeIntegral<u_int8_t>();
+ for (i = 0; i < num_iteration; i++) {
+ value = fuzzed_data.ConsumeBytesAsString(fuzzed_data.ConsumeIntegral<u_int8_t>());
+
+ ndpi_domain_classify_contains(d, &class_id, value.c_str());
+ }
+ /* Search of an added entry */
+ if (is_added) {
+ ndpi_domain_classify_contains(d, &class_id, value_added.c_str());
+ }
+
+ ndpi_domain_classify_size(d);
+
+ ndpi_domain_classify_free(d);
+
+ return 0;
+}
diff --git a/src/include/ndpi_api.h b/src/include/ndpi_api.h
index f3580e59a..9189a3a95 100644
--- a/src/include/ndpi_api.h
+++ b/src/include/ndpi_api.h
@@ -1800,12 +1800,12 @@ extern "C" {
/* ******************************* */
- u_int32_t ndpi_quick_hash(unsigned char *str, u_int str_len);
- u_int64_t ndpi_quick_hash64(char *str, u_int str_len);
- u_int32_t ndpi_hash_string(char *str);
- u_int32_t ndpi_rev_hash_string(char *str);
- u_int32_t ndpi_hash_string_len(char *str, u_int len);
- u_int32_t ndpi_murmur_hash(char *str, u_int str_len);
+ u_int32_t ndpi_quick_hash(const unsigned char *str, u_int str_len);
+ u_int64_t ndpi_quick_hash64(const char *str, u_int str_len);
+ u_int32_t ndpi_hash_string(const char *str);
+ u_int32_t ndpi_rev_hash_string(const char *str);
+ u_int32_t ndpi_hash_string_len(const char *str, u_int len);
+ u_int32_t ndpi_murmur_hash(const char *str, u_int str_len);
/* ******************************* */
@@ -2100,13 +2100,13 @@ extern "C" {
void ndpi_domain_classify_free(ndpi_domain_classify *s);
u_int32_t ndpi_domain_classify_size(ndpi_domain_classify *s);
bool ndpi_domain_classify_add(ndpi_domain_classify *s,
- u_int8_t class_id, char *domain);
+ u_int8_t class_id, const char *domain);
u_int32_t ndpi_domain_classify_add_domains(ndpi_domain_classify *s,
u_int8_t class_id,
char *file_path);
bool ndpi_domain_classify_contains(ndpi_domain_classify *s,
u_int8_t *class_id /* out */,
- char *domain);
+ const char *domain);
/* ******************************* */
diff --git a/src/lib/ndpi_bitmap64.c b/src/lib/ndpi_bitmap64.c
index f254c1483..6403eea7a 100644
--- a/src/lib/ndpi_bitmap64.c
+++ b/src/lib/ndpi_bitmap64.c
@@ -79,6 +79,9 @@ bool ndpi_bitmap64_compress(ndpi_bitmap64 *_b) {
if(!b)
return(false);
+ if(b->is_compressed)
+ return(true);
+
if(b->num_used_entries > 0) {
if(b->num_used_entries > 1)
qsort(b->entries, b->num_used_entries,
@@ -110,10 +113,13 @@ bool ndpi_bitmap64_compress(ndpi_bitmap64 *_b) {
if(binary_fuse16_populate(b->entries, b->num_used_entries, &b->bitmap)) {
ndpi_free(b->entries), b->num_used_entries = b->num_allocated_entries = 0;
b->entries = NULL;
- } else
+ } else {
+ binary_fuse16_free(&b->bitmap);
return(false);
- } else
+ }
+ } else {
return(false);
+ }
b->is_compressed = true;
@@ -145,7 +151,10 @@ bool ndpi_bitmap64_set(ndpi_bitmap64 *_b, u_int64_t value) {
rc = (u_int64_t*)ndpi_realloc(b->entries,
sizeof(u_int64_t)*b->num_allocated_entries,
sizeof(u_int64_t)*new_len);
- if(rc == NULL) return(false);
+ if(rc == NULL) {
+ b->is_compressed = false;
+ return(false);
+ }
b->entries = rc, b->num_allocated_entries = new_len;
}
@@ -165,6 +174,8 @@ bool ndpi_bitmap64_isset(ndpi_bitmap64 *_b, u_int64_t value) {
return(false);
if(!b->is_compressed) ndpi_bitmap64_compress(b);
+ if(!b->is_compressed)
+ return(false);
return(binary_fuse16_contain(value, &b->bitmap));
}
diff --git a/src/lib/ndpi_domain_classify.c b/src/lib/ndpi_domain_classify.c
index 385796e08..917c897f6 100644
--- a/src/lib/ndpi_domain_classify.c
+++ b/src/lib/ndpi_domain_classify.c
@@ -68,6 +68,9 @@ void ndpi_domain_classify_free(ndpi_domain_classify *s) {
u_int32_t ndpi_domain_classify_size(ndpi_domain_classify *s) {
u_int32_t i, tot_len = sizeof(ndpi_domain_classify);
+ if(!s)
+ return(0);
+
for(i=0; i<MAX_NUM_NDPI_DOMAIN_CLASSIFICATIONS; i++) {
if(s->classes[i].domains != NULL) {
tot_len += ndpi_bitmap64_size(s->classes[i].domains);
@@ -82,9 +85,14 @@ u_int32_t ndpi_domain_classify_size(ndpi_domain_classify *s) {
bool ndpi_domain_classify_add(ndpi_domain_classify *s,
u_int8_t class_id,
- char *domain) {
+ const char *domain) {
u_int32_t i;
- char *dot = strrchr(domain, '.');
+ char *dot;
+
+ if(!s || !domain)
+ return(false);
+
+ dot = strrchr(domain, '.');
if(!dot) return(false);
if((!strcmp(dot, ".arpa")) || (!strcmp(dot, ".local")))
@@ -184,11 +192,11 @@ static bool is_valid_domain_char(u_char c) {
bool ndpi_domain_classify_contains(ndpi_domain_classify *s,
u_int8_t *class_id /* out */,
- char *domain) {
+ const char *domain) {
u_int32_t i, len;
- char *dot, *elem;
+ const char *dot, *elem;
- if(!domain) return(false);
+ if(!domain || !s) return(false);
if((len = strlen(domain)) == 0) return(false);
if((dot = strrchr(domain, '.')) == NULL) return(false);
if((!strcmp(dot, ".arpa")) || (!strcmp(dot, ".local"))) return(false);
diff --git a/src/lib/ndpi_hash.c b/src/lib/ndpi_hash.c
index 8dd7beab0..567e1d67c 100644
--- a/src/lib/ndpi_hash.c
+++ b/src/lib/ndpi_hash.c
@@ -30,14 +30,14 @@
/* ******************************************************************** */
/* Based on djb2 hash - http://www.cse.yorku.ca/~oz/hash.html */
-u_int32_t ndpi_murmur_hash(char *str, u_int str_len) {
+u_int32_t ndpi_murmur_hash(const char *str, u_int str_len) {
return(MurmurHash((void*)str, str_len, 0x87654321));
}
/* ******************************************************************** */
/* Based on djb2 hash - http://www.cse.yorku.ca/~oz/hash.html */
-u_int32_t ndpi_quick_hash(unsigned char *str, u_int str_len) {
+u_int32_t ndpi_quick_hash(const unsigned char *str, u_int str_len) {
u_int32_t hash = 5381, i;
for(i=0; i<str_len; i++)
@@ -49,7 +49,7 @@ u_int32_t ndpi_quick_hash(unsigned char *str, u_int str_len) {
/* ******************************************************************** */
/* Based on Daniel Lemire code */
-u_int64_t ndpi_quick_hash64(char *str, u_int str_len) {
+u_int64_t ndpi_quick_hash64(const char *str, u_int str_len) {
u_int64_t h = 0;
u_int i;
@@ -68,7 +68,7 @@ u_int64_t ndpi_quick_hash64(char *str, u_int str_len) {
See also http://burtleburtle.net/bob/hash/spooky.html
*/
-u_int32_t ndpi_hash_string(char *str) {
+u_int32_t ndpi_hash_string(const char *str) {
u_int32_t hash, i;
for(hash = i = 0; str[i] != '\0'; ++i) {
@@ -86,7 +86,7 @@ u_int32_t ndpi_hash_string(char *str) {
/* ******************************************************************** */
-u_int32_t ndpi_rev_hash_string(char *str) {
+u_int32_t ndpi_rev_hash_string(const char *str) {
u_int32_t hash, i;
int len = strlen(str);
@@ -109,7 +109,7 @@ u_int32_t ndpi_rev_hash_string(char *str) {
/* ******************************************************************** */
/* Same as above but with strings with lenght */
-u_int32_t ndpi_hash_string_len(char *str, u_int len) {
+u_int32_t ndpi_hash_string_len(const char *str, u_int len) {
u_int32_t hash, i;
for(hash = i = 0; i< len; ++i) {