From ef6085370f75ae7c6c53bfbd0e36c588483a5047 Mon Sep 17 00:00:00 2001 From: Ivan Nardi <12729895+IvanNardi@users.noreply.github.com> Date: Sun, 10 Sep 2023 18:44:50 +0200 Subject: fuzz: add fuzzers to test bitmap64 and domain_classify data structures (#2082) --- .gitignore | 4 ++ fuzz/Makefile.am | 64 ++++++++++++++------- .../000b6da044c11d100ffecc1c58f236a0c243f2c9 | 1 + .../03191cdd9d39fd9e9481819abe8096d3cd8dcaa9 | Bin 0 -> 29659 bytes .../0b085fb6da7814c2e70c22ca0221090b8bf4002c | Bin 0 -> 30794 bytes .../0c78f9445a26753487132bc34b2fa5526b82357b | 1 + .../0c9acbe4dba896e14dbaaf1063b4b445d2fd8f53 | 1 + .../0ccd0d0397766b982826f7cf9115f97018a62466 | Bin 0 -> 319 bytes .../0db99f086dca27ead6b42db91de404061b623981 | 1 + .../0eff7f526d9e547a3fd3fc0bfbaefa1e686ec9ec | 1 + .../10c27c41df755669fc42b71d295eda528c02f5b6 | Bin 0 -> 68 bytes .../10f0aadbed8649c5917a9d90a1483a30ad83793f | Bin 0 -> 131 bytes .../2730ef1769e66315391286ab579e13efc1baa670 | 1 + .../27e24cb43045da83ad481dd8c6cd38de1bd359fc | 1 + .../28005384ac31d00f0dce884ff065f66c76bc391b | Bin 0 -> 29543 bytes .../2ac3872be3ae0f578da110d5580b362374676ef9 | Bin 0 -> 39 bytes .../2e540ffd5bd997876f0d84bb1d760602514437d5 | Bin 0 -> 152 bytes .../36f01f003e9a03de198ced6ad4ae919a5a9fd039 | Bin 0 -> 30313 bytes .../375e36427a1552d8ff4d3c496296e4d2e52ae035 | Bin 0 -> 1032 bytes .../3af39359237047d1453f3a843348b1a53a7a480d | Bin 0 -> 743 bytes .../3c2fa67399fcc4c7de379137a631ac8278f5edc7 | 1 + .../3de96d39842d29fa7c63589ecbfd2b652b329334 | Bin 0 -> 62992 bytes .../448fdcde54b118a62f7a53c134a35ca447c0e762 | Bin 0 -> 60 bytes .../485cc776ea8d113e993d911e39ebbe089669f949 | Bin 0 -> 28 bytes .../486f2245c8e26f0f769ab53503d6d7bc5d15c97b | Bin 0 -> 1030 bytes .../4b7cc42c02089c817ff610eb65d149356d96062a | 1 + .../539e28d50616971ae880b07df55661945966626c | Bin 0 -> 4134 bytes .../5e3bfa52c5d6a5e3cb2288fa9c58dd09b546f2ba | Bin 0 -> 80 bytes .../60c5f54695042fd2d6e0b97bddf3e55f8c9807b7 | Bin 0 -> 47 bytes .../6886bfb6a9cb9398e4dfbf0fa4fb909148d442a1 | 1 + .../6e97172624f802febb1f68d357254e768810efc6 | Bin 0 -> 40 bytes .../6f103d053753b48191a50676b186154388fd90ce | Bin 0 -> 29872 bytes .../6fb915c4967d2d8b03c3cbc6e65aa247ea94dde3 | Bin 0 -> 29380 bytes .../707c8ca3c49e1519254f90d69626a4cd351b45ca | Bin 0 -> 29830 bytes .../75c56111e67252f6b544aabf055ef7113f44891e | Bin 0 -> 32145 bytes .../7b1b296a38fa941521b1ae5ada7f53fcb01616c5 | Bin 0 -> 35 bytes .../8bb13e2f178a7da1580dbcf426885e6ac861a609 | Bin 0 -> 29864 bytes .../8dfde24023b6377ec411016db54890ad58370d9c | Bin 0 -> 33376 bytes .../90f53e4946ded91eedeffe75747a9118d747d029 | 1 + .../920da1a4cec774e0de02ebf54087099de7658cdb | Bin 0 -> 39 bytes .../96996a3adf736a9044a04c5d8acd73e385b1bc6b | Bin 0 -> 1037 bytes .../9e55233a97010a5a3f2dfad360e5c8a3e2d9b8ef | 1 + .../9f28a467c09155c799c880706286180fc50ee0a2 | Bin 0 -> 149 bytes .../a8fb1448425ca0cb6871ec51c67332eb2185159e | Bin 0 -> 15 bytes .../ab870e2c87f40df57d2aeb9a035f6f55b3486261 | Bin 0 -> 5885 bytes .../aca80cb5b3b214b3273623a383678e3e66eece2b | Bin 0 -> 29892 bytes .../afa1100989a7a625fe7bbf39e09a296c53a5572c | Bin 0 -> 13 bytes .../aff44f8008132c50796911f5f52f1e2307c2a858 | 1 + .../b51a60734da64be0e618bacbea2865a8a7dcd669 | 1 + .../b5c0fdf0969f9ad91e127670d76df252e6e6b1d9 | Bin 0 -> 29549 bytes .../b5d2b5145a6066fd0429e1236dd08fff307122ab | Bin 0 -> 90 bytes .../b5f6e6294cc83f68f906cdc5195a45c30ce11121 | 1 + .../b8dbebe13b9f719baae6afc13a3ee01846c33089 | Bin 0 -> 54 bytes .../c03aa82eaa3d73636a44653b05f2aa83d465ae32 | Bin 0 -> 29544 bytes .../c4fcead253b3a6ea0ebb48397751d2439b1f489f | Bin 0 -> 260 bytes .../c50e5229c745fc00ea982d7e31a21501362ae054 | Bin 0 -> 48254 bytes .../cedb4282204e8a6469f370e6ed6b082ba0017b54 | 1 + .../d39a8fafd0e4a957003dcbc8ca23e48e9640aaba | Bin 0 -> 29774 bytes .../d58f4b573cd04c2ff3df7487ca8c5bc942335a30 | 1 + .../d9739412222ab242871c5292f12e5556e779a9c8 | 1 + .../e20b515e8276f7bb16141e37b25d231266840ce3 | Bin 0 -> 30 bytes .../e4e2d81d9c15ac2493c5014d584721366dd38af8 | Bin 0 -> 38 bytes .../e54dbe399501a4027fdd3e2bcd547b4ba8699d00 | 1 + .../eefc0d805828e9bd300c2ce9370e32554a93d79a | Bin 0 -> 29830 bytes .../ef1f8773349d15d2c581642068b3b06206a2b43e | Bin 0 -> 29301 bytes .../f0c957104bb1b80c9d125d9c8cbb3f06fbf2ab1a | Bin 0 -> 4 bytes .../f1c09f190bf77d120a0e539412bbd9fa70af062f | Bin 0 -> 271 bytes .../f4643e6de35a287e7ccc44126aabd147f86bff26 | Bin 0 -> 29826 bytes .../fa5b31c6f43981ff6a304189345466790de5a10b | 1 + .../fb8f2cb93bb8e3215593ea1395a6ec62c627ed87 | Bin 0 -> 48 bytes .../0763c17eddc590407feeca191d3592c1961bfc2a | Bin 0 -> 9049 bytes .../094d98b399bf4ace7b8899ab7081e867fb03f869 | 1 + .../11952b9dbc937aad9ee4ab4558bbf453ba29c3e6 | Bin 0 -> 940 bytes .../1489f923c4dca729178b3e3233458550d8dddf29 | Bin 0 -> 2 bytes .../171af5b11ede78dd8b5ec564ebfbe7f67a0d00f6 | Bin 0 -> 2818 bytes .../1a95536cfa43be767a4c275a39b7be4808e9089c | Bin 0 -> 2 bytes .../1c19ecde3ec34849b56eaf7644891b363aed140a | 1 + .../2238a1ca2a865dd629a955573bc6865f5703e043 | Bin 0 -> 36 bytes .../268609400f747aab608d7341377633a218292a8b | Bin 0 -> 67 bytes .../29c5ad6b994594b24efdeff0aded2b170573d804 | Bin 0 -> 1137 bytes .../29e50e32fad939cfb4f81e41babf701b62ae9e35 | Bin 0 -> 18 bytes .../2bb953bdd42b4e1f04bd8e0be26ef8cfc77b686f | Bin 0 -> 480 bytes .../2d0134ed3b9de132c720fe697b532b4c232ff9fe | 1 + .../304ffc88b8aba511ba115643aaca30a57cf3a39f | Bin 0 -> 22571 bytes .../334b5776531596fbf87f4003b59e59eed55fc064 | Bin 0 -> 2167 bytes .../339145dd705eaa3a3507c66682f4af74d8992de7 | Bin 0 -> 1577 bytes .../39f0e3be6ce5f0f68b2f4980f49d33a8eddceffe | 1 + .../418b6bf6865a11f3aea753a7bc424f14c324ad02 | Bin 0 -> 548 bytes .../437fafa21180ba3e97eee66d9f0d6e7ee384c792 | Bin 0 -> 2930 bytes .../438b9c851cab4d3000cf67e9c79f61102cf0edf7 | Bin 0 -> 140 bytes .../4887d5f71acee372a80a51f854db00a9ac6ad4b1 | Bin 0 -> 1712 bytes .../511856a6624c10a5b873c94c9c353d7c40f55d13 | Bin 0 -> 10 bytes .../548d725eefec486a240420c2a2a052719f6abdfb | Bin 0 -> 784 bytes .../54a5dc7b5a3c176c8a7860763016b099851a7177 | 2 + .../569797426145c8f97a79507f55a3643380fef99a | Bin 0 -> 401 bytes .../5793d2e18f5e5da0e1ad0dd0d653a07d99697629 | Bin 0 -> 33 bytes .../5ba93c9db0cff93f52b521d7420e43f6eda2784f | Bin 0 -> 1 bytes .../5d7b38594b7e96fc7fecbda28e918247815d18e8 | Bin 0 -> 2572 bytes .../60f8bf8d92afec3747e8dcb0268b2a71e43307a1 | Bin 0 -> 533 bytes .../64b68bf5b882b9bd0b37267287980ecfa0e44a85 | 1 + .../659f0d816b309d7b36420e455dac2b72c422e043 | 1 + .../6764243865a15be7f67e674e753117df9e682e92 | Bin 0 -> 278 bytes .../6b303cb9736917e6770d242b54d3c264b1c3a163 | Bin 0 -> 604 bytes .../76a3b04816a0d02bd8f62f10100d8d3fcd8f7870 | Bin 0 -> 78 bytes .../827128eea26a395dbd08c061d746ff72bf4d4237 | Bin 0 -> 9162 bytes .../8b466a25395565bbc2c00e55043fe8a990763b5c | Bin 0 -> 33675 bytes .../8eaa6a4ea0565df425174b7dd73447aba400757d | Bin 0 -> 16582 bytes .../8ed36d145e9179de1f587e1c342ab505132b1b19 | Bin 0 -> 574 bytes .../916b6aa0dd2152617f811bfae99f244c5ae4ced2 | Bin 0 -> 12044 bytes .../917e18eaa6fa97734a052608c2544b0484284b02 | Bin 0 -> 3505 bytes .../9842926af7ca0a8cca12604f945414f07b01e13d | 1 + .../9ac9505d7081e5c6a37b859f9272570244a0f98c | Bin 0 -> 3 bytes .../9f6be58219b7645ceeb3535f9300b1b4fc17de61 | Bin 0 -> 1883 bytes .../a42c6cf1de3abfdea9b95f34687cbbe92b9a7383 | 1 + .../a455fdcb5b79cb644de056827cc6158ca3a2ce44 | Bin 0 -> 1014 bytes .../a760deb5c9a538e1c42fc3ffa650dc15dc8f8e25 | Bin 0 -> 6404 bytes .../acb68aea390eb6c65a4befd4d4f0a1e8dd2686cd | Bin 0 -> 9594 bytes .../ad34c510e307e6659ef99bf5bb030dd59907d5a7 | Bin 0 -> 60 bytes .../b4f4214e3a75f34b3cde5a07511dc3fc28ee30d4 | Bin 0 -> 3664 bytes .../b4f4ffee175644a5c3cd5f9e0e3a6a18e156803d | Bin 0 -> 261 bytes .../bec542f004a8a2401493dde5c8bbafe91644a0a1 | Bin 0 -> 23 bytes .../bf8b4530d8d246dd74ac53a13471bba17941dff7 | 1 + .../c4ea21bb365bbeeaf5f2c654883e56d11e43c44e | 1 + .../c7255dc48b42d44f6c0676d6009051b7e1aa885b | 1 + .../d1224e1a17cd7e959396405e3b6c414f9734b45b | Bin 0 -> 33215 bytes .../da33e41954997c24ad31f6c1845e18510b384f67 | Bin 0 -> 2 bytes .../df6ada8a1eeef582869d1d938a8f1cd478d2fe67 | Bin 0 -> 263 bytes .../e8c6f79f570740561b8e423a7c8855ddeab8899b | Bin 0 -> 12003 bytes .../eae48a76748e7ea357ac1bd3f151e03910fc7704 | Bin 0 -> 79 bytes .../ed85b0a21a5eb7ee95c17254658bfea922035497 | Bin 0 -> 17915 bytes .../fad9e4c68a79cc7198543572432b34be868b443d | Bin 0 -> 34 bytes .../fdaaa229ce19324a2adfaeee8f637a5f6e29719b | 1 + fuzz/fuzz_alg_crc32_md5.c | 20 ++++++- fuzz/fuzz_ds_bitmap64.cpp | 54 +++++++++++++++++ fuzz/fuzz_ds_domain_classify.cpp | 53 +++++++++++++++++ src/include/ndpi_api.h | 16 +++--- src/lib/ndpi_bitmap64.c | 17 +++++- src/lib/ndpi_domain_classify.c | 18 ++++-- src/lib/ndpi_hash.c | 12 ++-- 139 files changed, 247 insertions(+), 45 deletions(-) create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/000b6da044c11d100ffecc1c58f236a0c243f2c9 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/03191cdd9d39fd9e9481819abe8096d3cd8dcaa9 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/0b085fb6da7814c2e70c22ca0221090b8bf4002c create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/0c78f9445a26753487132bc34b2fa5526b82357b create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/0c9acbe4dba896e14dbaaf1063b4b445d2fd8f53 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/0ccd0d0397766b982826f7cf9115f97018a62466 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/0db99f086dca27ead6b42db91de404061b623981 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/0eff7f526d9e547a3fd3fc0bfbaefa1e686ec9ec create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/10c27c41df755669fc42b71d295eda528c02f5b6 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/10f0aadbed8649c5917a9d90a1483a30ad83793f create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/2730ef1769e66315391286ab579e13efc1baa670 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/27e24cb43045da83ad481dd8c6cd38de1bd359fc create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/28005384ac31d00f0dce884ff065f66c76bc391b create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/2ac3872be3ae0f578da110d5580b362374676ef9 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/2e540ffd5bd997876f0d84bb1d760602514437d5 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/36f01f003e9a03de198ced6ad4ae919a5a9fd039 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/375e36427a1552d8ff4d3c496296e4d2e52ae035 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/3af39359237047d1453f3a843348b1a53a7a480d create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/3c2fa67399fcc4c7de379137a631ac8278f5edc7 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/3de96d39842d29fa7c63589ecbfd2b652b329334 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/448fdcde54b118a62f7a53c134a35ca447c0e762 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/485cc776ea8d113e993d911e39ebbe089669f949 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/486f2245c8e26f0f769ab53503d6d7bc5d15c97b create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/4b7cc42c02089c817ff610eb65d149356d96062a create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/539e28d50616971ae880b07df55661945966626c create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/5e3bfa52c5d6a5e3cb2288fa9c58dd09b546f2ba create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/60c5f54695042fd2d6e0b97bddf3e55f8c9807b7 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/6886bfb6a9cb9398e4dfbf0fa4fb909148d442a1 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/6e97172624f802febb1f68d357254e768810efc6 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/6f103d053753b48191a50676b186154388fd90ce create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/6fb915c4967d2d8b03c3cbc6e65aa247ea94dde3 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/707c8ca3c49e1519254f90d69626a4cd351b45ca create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/75c56111e67252f6b544aabf055ef7113f44891e create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/7b1b296a38fa941521b1ae5ada7f53fcb01616c5 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/8bb13e2f178a7da1580dbcf426885e6ac861a609 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/8dfde24023b6377ec411016db54890ad58370d9c create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/90f53e4946ded91eedeffe75747a9118d747d029 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/920da1a4cec774e0de02ebf54087099de7658cdb create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/96996a3adf736a9044a04c5d8acd73e385b1bc6b create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/9e55233a97010a5a3f2dfad360e5c8a3e2d9b8ef create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/9f28a467c09155c799c880706286180fc50ee0a2 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/a8fb1448425ca0cb6871ec51c67332eb2185159e create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/ab870e2c87f40df57d2aeb9a035f6f55b3486261 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/aca80cb5b3b214b3273623a383678e3e66eece2b create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/afa1100989a7a625fe7bbf39e09a296c53a5572c create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/aff44f8008132c50796911f5f52f1e2307c2a858 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/b51a60734da64be0e618bacbea2865a8a7dcd669 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/b5c0fdf0969f9ad91e127670d76df252e6e6b1d9 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/b5d2b5145a6066fd0429e1236dd08fff307122ab create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/b5f6e6294cc83f68f906cdc5195a45c30ce11121 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/b8dbebe13b9f719baae6afc13a3ee01846c33089 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/c03aa82eaa3d73636a44653b05f2aa83d465ae32 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/c4fcead253b3a6ea0ebb48397751d2439b1f489f create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/c50e5229c745fc00ea982d7e31a21501362ae054 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/cedb4282204e8a6469f370e6ed6b082ba0017b54 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/d39a8fafd0e4a957003dcbc8ca23e48e9640aaba create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/d58f4b573cd04c2ff3df7487ca8c5bc942335a30 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/d9739412222ab242871c5292f12e5556e779a9c8 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/e20b515e8276f7bb16141e37b25d231266840ce3 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/e4e2d81d9c15ac2493c5014d584721366dd38af8 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/e54dbe399501a4027fdd3e2bcd547b4ba8699d00 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/eefc0d805828e9bd300c2ce9370e32554a93d79a create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/ef1f8773349d15d2c581642068b3b06206a2b43e create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/f0c957104bb1b80c9d125d9c8cbb3f06fbf2ab1a create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/f1c09f190bf77d120a0e539412bbd9fa70af062f create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/f4643e6de35a287e7ccc44126aabd147f86bff26 create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/fa5b31c6f43981ff6a304189345466790de5a10b create mode 100644 fuzz/corpus/fuzz_ds_bitmap64/fb8f2cb93bb8e3215593ea1395a6ec62c627ed87 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/0763c17eddc590407feeca191d3592c1961bfc2a create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/094d98b399bf4ace7b8899ab7081e867fb03f869 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/11952b9dbc937aad9ee4ab4558bbf453ba29c3e6 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/1489f923c4dca729178b3e3233458550d8dddf29 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/171af5b11ede78dd8b5ec564ebfbe7f67a0d00f6 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/1a95536cfa43be767a4c275a39b7be4808e9089c create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/1c19ecde3ec34849b56eaf7644891b363aed140a create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/2238a1ca2a865dd629a955573bc6865f5703e043 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/268609400f747aab608d7341377633a218292a8b create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/29c5ad6b994594b24efdeff0aded2b170573d804 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/29e50e32fad939cfb4f81e41babf701b62ae9e35 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/2bb953bdd42b4e1f04bd8e0be26ef8cfc77b686f create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/2d0134ed3b9de132c720fe697b532b4c232ff9fe create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/304ffc88b8aba511ba115643aaca30a57cf3a39f create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/334b5776531596fbf87f4003b59e59eed55fc064 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/339145dd705eaa3a3507c66682f4af74d8992de7 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/39f0e3be6ce5f0f68b2f4980f49d33a8eddceffe create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/418b6bf6865a11f3aea753a7bc424f14c324ad02 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/437fafa21180ba3e97eee66d9f0d6e7ee384c792 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/438b9c851cab4d3000cf67e9c79f61102cf0edf7 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/4887d5f71acee372a80a51f854db00a9ac6ad4b1 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/511856a6624c10a5b873c94c9c353d7c40f55d13 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/548d725eefec486a240420c2a2a052719f6abdfb create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/54a5dc7b5a3c176c8a7860763016b099851a7177 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/569797426145c8f97a79507f55a3643380fef99a create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/5793d2e18f5e5da0e1ad0dd0d653a07d99697629 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/5ba93c9db0cff93f52b521d7420e43f6eda2784f create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/5d7b38594b7e96fc7fecbda28e918247815d18e8 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/60f8bf8d92afec3747e8dcb0268b2a71e43307a1 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/64b68bf5b882b9bd0b37267287980ecfa0e44a85 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/659f0d816b309d7b36420e455dac2b72c422e043 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/6764243865a15be7f67e674e753117df9e682e92 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/6b303cb9736917e6770d242b54d3c264b1c3a163 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/76a3b04816a0d02bd8f62f10100d8d3fcd8f7870 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/827128eea26a395dbd08c061d746ff72bf4d4237 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/8b466a25395565bbc2c00e55043fe8a990763b5c create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/8eaa6a4ea0565df425174b7dd73447aba400757d create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/8ed36d145e9179de1f587e1c342ab505132b1b19 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/916b6aa0dd2152617f811bfae99f244c5ae4ced2 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/917e18eaa6fa97734a052608c2544b0484284b02 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/9842926af7ca0a8cca12604f945414f07b01e13d create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/9ac9505d7081e5c6a37b859f9272570244a0f98c create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/9f6be58219b7645ceeb3535f9300b1b4fc17de61 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/a42c6cf1de3abfdea9b95f34687cbbe92b9a7383 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/a455fdcb5b79cb644de056827cc6158ca3a2ce44 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/a760deb5c9a538e1c42fc3ffa650dc15dc8f8e25 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/acb68aea390eb6c65a4befd4d4f0a1e8dd2686cd create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/ad34c510e307e6659ef99bf5bb030dd59907d5a7 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/b4f4214e3a75f34b3cde5a07511dc3fc28ee30d4 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/b4f4ffee175644a5c3cd5f9e0e3a6a18e156803d create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/bec542f004a8a2401493dde5c8bbafe91644a0a1 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/bf8b4530d8d246dd74ac53a13471bba17941dff7 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/c4ea21bb365bbeeaf5f2c654883e56d11e43c44e create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/c7255dc48b42d44f6c0676d6009051b7e1aa885b create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/d1224e1a17cd7e959396405e3b6c414f9734b45b create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/da33e41954997c24ad31f6c1845e18510b384f67 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/df6ada8a1eeef582869d1d938a8f1cd478d2fe67 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/e8c6f79f570740561b8e423a7c8855ddeab8899b create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/eae48a76748e7ea357ac1bd3f151e03910fc7704 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/ed85b0a21a5eb7ee95c17254658bfea922035497 create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/fad9e4c68a79cc7198543572432b34be868b443d create mode 100644 fuzz/corpus/fuzz_ds_domain_classify/fdaaa229ce19324a2adfaeee8f637a5f6e29719b create mode 100644 fuzz/fuzz_ds_bitmap64.cpp create mode 100644 fuzz/fuzz_ds_domain_classify.cpp 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/03191cdd9d39fd9e9481819abe8096d3cd8dcaa9 differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/0b085fb6da7814c2e70c22ca0221090b8bf4002c b/fuzz/corpus/fuzz_ds_bitmap64/0b085fb6da7814c2e70c22ca0221090b8bf4002c new file mode 100644 index 000000000..1ade82114 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/0b085fb6da7814c2e70c22ca0221090b8bf4002c 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/0ccd0d0397766b982826f7cf9115f97018a62466 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/10c27c41df755669fc42b71d295eda528c02f5b6 differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/10f0aadbed8649c5917a9d90a1483a30ad83793f b/fuzz/corpus/fuzz_ds_bitmap64/10f0aadbed8649c5917a9d90a1483a30ad83793f new file mode 100644 index 000000000..552d70d2a Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/10f0aadbed8649c5917a9d90a1483a30ad83793f 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/28005384ac31d00f0dce884ff065f66c76bc391b differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/2ac3872be3ae0f578da110d5580b362374676ef9 b/fuzz/corpus/fuzz_ds_bitmap64/2ac3872be3ae0f578da110d5580b362374676ef9 new file mode 100644 index 000000000..beb9fe490 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/2ac3872be3ae0f578da110d5580b362374676ef9 differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/2e540ffd5bd997876f0d84bb1d760602514437d5 b/fuzz/corpus/fuzz_ds_bitmap64/2e540ffd5bd997876f0d84bb1d760602514437d5 new file mode 100644 index 000000000..1dd670bae Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/2e540ffd5bd997876f0d84bb1d760602514437d5 differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/36f01f003e9a03de198ced6ad4ae919a5a9fd039 b/fuzz/corpus/fuzz_ds_bitmap64/36f01f003e9a03de198ced6ad4ae919a5a9fd039 new file mode 100644 index 000000000..3468266b4 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/36f01f003e9a03de198ced6ad4ae919a5a9fd039 differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/375e36427a1552d8ff4d3c496296e4d2e52ae035 b/fuzz/corpus/fuzz_ds_bitmap64/375e36427a1552d8ff4d3c496296e4d2e52ae035 new file mode 100644 index 000000000..fa5bcc95d Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/375e36427a1552d8ff4d3c496296e4d2e52ae035 differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/3af39359237047d1453f3a843348b1a53a7a480d b/fuzz/corpus/fuzz_ds_bitmap64/3af39359237047d1453f3a843348b1a53a7a480d new file mode 100644 index 000000000..2e5040f8c Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/3af39359237047d1453f3a843348b1a53a7a480d 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/3de96d39842d29fa7c63589ecbfd2b652b329334 differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/448fdcde54b118a62f7a53c134a35ca447c0e762 b/fuzz/corpus/fuzz_ds_bitmap64/448fdcde54b118a62f7a53c134a35ca447c0e762 new file mode 100644 index 000000000..4b77a8573 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/448fdcde54b118a62f7a53c134a35ca447c0e762 differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/485cc776ea8d113e993d911e39ebbe089669f949 b/fuzz/corpus/fuzz_ds_bitmap64/485cc776ea8d113e993d911e39ebbe089669f949 new file mode 100644 index 000000000..b9d7cf725 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/485cc776ea8d113e993d911e39ebbe089669f949 differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/486f2245c8e26f0f769ab53503d6d7bc5d15c97b b/fuzz/corpus/fuzz_ds_bitmap64/486f2245c8e26f0f769ab53503d6d7bc5d15c97b new file mode 100644 index 000000000..82e64f77a Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/486f2245c8e26f0f769ab53503d6d7bc5d15c97b 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/539e28d50616971ae880b07df55661945966626c differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/5e3bfa52c5d6a5e3cb2288fa9c58dd09b546f2ba b/fuzz/corpus/fuzz_ds_bitmap64/5e3bfa52c5d6a5e3cb2288fa9c58dd09b546f2ba new file mode 100644 index 000000000..b7b5c063a Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/5e3bfa52c5d6a5e3cb2288fa9c58dd09b546f2ba differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/60c5f54695042fd2d6e0b97bddf3e55f8c9807b7 b/fuzz/corpus/fuzz_ds_bitmap64/60c5f54695042fd2d6e0b97bddf3e55f8c9807b7 new file mode 100644 index 000000000..55b3b9311 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/60c5f54695042fd2d6e0b97bddf3e55f8c9807b7 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/6e97172624f802febb1f68d357254e768810efc6 differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/6f103d053753b48191a50676b186154388fd90ce b/fuzz/corpus/fuzz_ds_bitmap64/6f103d053753b48191a50676b186154388fd90ce new file mode 100644 index 000000000..7ca663399 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/6f103d053753b48191a50676b186154388fd90ce differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/6fb915c4967d2d8b03c3cbc6e65aa247ea94dde3 b/fuzz/corpus/fuzz_ds_bitmap64/6fb915c4967d2d8b03c3cbc6e65aa247ea94dde3 new file mode 100644 index 000000000..91aab7e5b Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/6fb915c4967d2d8b03c3cbc6e65aa247ea94dde3 differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/707c8ca3c49e1519254f90d69626a4cd351b45ca b/fuzz/corpus/fuzz_ds_bitmap64/707c8ca3c49e1519254f90d69626a4cd351b45ca new file mode 100644 index 000000000..17fe2b432 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/707c8ca3c49e1519254f90d69626a4cd351b45ca differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/75c56111e67252f6b544aabf055ef7113f44891e b/fuzz/corpus/fuzz_ds_bitmap64/75c56111e67252f6b544aabf055ef7113f44891e new file mode 100644 index 000000000..739ceed05 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/75c56111e67252f6b544aabf055ef7113f44891e differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/7b1b296a38fa941521b1ae5ada7f53fcb01616c5 b/fuzz/corpus/fuzz_ds_bitmap64/7b1b296a38fa941521b1ae5ada7f53fcb01616c5 new file mode 100644 index 000000000..72719d434 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/7b1b296a38fa941521b1ae5ada7f53fcb01616c5 differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/8bb13e2f178a7da1580dbcf426885e6ac861a609 b/fuzz/corpus/fuzz_ds_bitmap64/8bb13e2f178a7da1580dbcf426885e6ac861a609 new file mode 100644 index 000000000..15d2ec270 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/8bb13e2f178a7da1580dbcf426885e6ac861a609 differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/8dfde24023b6377ec411016db54890ad58370d9c b/fuzz/corpus/fuzz_ds_bitmap64/8dfde24023b6377ec411016db54890ad58370d9c new file mode 100644 index 000000000..1b4e0d294 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/8dfde24023b6377ec411016db54890ad58370d9c 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/920da1a4cec774e0de02ebf54087099de7658cdb differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/96996a3adf736a9044a04c5d8acd73e385b1bc6b b/fuzz/corpus/fuzz_ds_bitmap64/96996a3adf736a9044a04c5d8acd73e385b1bc6b new file mode 100644 index 000000000..1f39c2362 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/96996a3adf736a9044a04c5d8acd73e385b1bc6b 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/9f28a467c09155c799c880706286180fc50ee0a2 differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/a8fb1448425ca0cb6871ec51c67332eb2185159e b/fuzz/corpus/fuzz_ds_bitmap64/a8fb1448425ca0cb6871ec51c67332eb2185159e new file mode 100644 index 000000000..c745c687e Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/a8fb1448425ca0cb6871ec51c67332eb2185159e differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/ab870e2c87f40df57d2aeb9a035f6f55b3486261 b/fuzz/corpus/fuzz_ds_bitmap64/ab870e2c87f40df57d2aeb9a035f6f55b3486261 new file mode 100644 index 000000000..55a73792d Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/ab870e2c87f40df57d2aeb9a035f6f55b3486261 differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/aca80cb5b3b214b3273623a383678e3e66eece2b b/fuzz/corpus/fuzz_ds_bitmap64/aca80cb5b3b214b3273623a383678e3e66eece2b new file mode 100644 index 000000000..246262c24 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/aca80cb5b3b214b3273623a383678e3e66eece2b differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/afa1100989a7a625fe7bbf39e09a296c53a5572c b/fuzz/corpus/fuzz_ds_bitmap64/afa1100989a7a625fe7bbf39e09a296c53a5572c new file mode 100644 index 000000000..55854c0cf Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/afa1100989a7a625fe7bbf39e09a296c53a5572c 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/b5c0fdf0969f9ad91e127670d76df252e6e6b1d9 differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/b5d2b5145a6066fd0429e1236dd08fff307122ab b/fuzz/corpus/fuzz_ds_bitmap64/b5d2b5145a6066fd0429e1236dd08fff307122ab new file mode 100644 index 000000000..fea6e080c Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/b5d2b5145a6066fd0429e1236dd08fff307122ab 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/b8dbebe13b9f719baae6afc13a3ee01846c33089 differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/c03aa82eaa3d73636a44653b05f2aa83d465ae32 b/fuzz/corpus/fuzz_ds_bitmap64/c03aa82eaa3d73636a44653b05f2aa83d465ae32 new file mode 100644 index 000000000..9d44a9f94 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/c03aa82eaa3d73636a44653b05f2aa83d465ae32 differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/c4fcead253b3a6ea0ebb48397751d2439b1f489f b/fuzz/corpus/fuzz_ds_bitmap64/c4fcead253b3a6ea0ebb48397751d2439b1f489f new file mode 100644 index 000000000..dbeb7ca0c Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/c4fcead253b3a6ea0ebb48397751d2439b1f489f differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/c50e5229c745fc00ea982d7e31a21501362ae054 b/fuzz/corpus/fuzz_ds_bitmap64/c50e5229c745fc00ea982d7e31a21501362ae054 new file mode 100644 index 000000000..84cb14d22 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/c50e5229c745fc00ea982d7e31a21501362ae054 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/d39a8fafd0e4a957003dcbc8ca23e48e9640aaba 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/e20b515e8276f7bb16141e37b25d231266840ce3 differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/e4e2d81d9c15ac2493c5014d584721366dd38af8 b/fuzz/corpus/fuzz_ds_bitmap64/e4e2d81d9c15ac2493c5014d584721366dd38af8 new file mode 100644 index 000000000..f305e39c3 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/e4e2d81d9c15ac2493c5014d584721366dd38af8 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/eefc0d805828e9bd300c2ce9370e32554a93d79a differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/ef1f8773349d15d2c581642068b3b06206a2b43e b/fuzz/corpus/fuzz_ds_bitmap64/ef1f8773349d15d2c581642068b3b06206a2b43e new file mode 100644 index 000000000..ad35998e3 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/ef1f8773349d15d2c581642068b3b06206a2b43e differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/f0c957104bb1b80c9d125d9c8cbb3f06fbf2ab1a b/fuzz/corpus/fuzz_ds_bitmap64/f0c957104bb1b80c9d125d9c8cbb3f06fbf2ab1a new file mode 100644 index 000000000..ded2df2a5 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/f0c957104bb1b80c9d125d9c8cbb3f06fbf2ab1a differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/f1c09f190bf77d120a0e539412bbd9fa70af062f b/fuzz/corpus/fuzz_ds_bitmap64/f1c09f190bf77d120a0e539412bbd9fa70af062f new file mode 100644 index 000000000..ef42a3e51 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/f1c09f190bf77d120a0e539412bbd9fa70af062f differ diff --git a/fuzz/corpus/fuzz_ds_bitmap64/f4643e6de35a287e7ccc44126aabd147f86bff26 b/fuzz/corpus/fuzz_ds_bitmap64/f4643e6de35a287e7ccc44126aabd147f86bff26 new file mode 100644 index 000000000..46351556b Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/f4643e6de35a287e7ccc44126aabd147f86bff26 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_bitmap64/fb8f2cb93bb8e3215593ea1395a6ec62c627ed87 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_domain_classify/0763c17eddc590407feeca191d3592c1961bfc2a 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_domain_classify/11952b9dbc937aad9ee4ab4558bbf453ba29c3e6 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_domain_classify/1489f923c4dca729178b3e3233458550d8dddf29 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_domain_classify/171af5b11ede78dd8b5ec564ebfbe7f67a0d00f6 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_domain_classify/1a95536cfa43be767a4c275a39b7be4808e9089c 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_domain_classify/2238a1ca2a865dd629a955573bc6865f5703e043 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_domain_classify/268609400f747aab608d7341377633a218292a8b 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_domain_classify/29c5ad6b994594b24efdeff0aded2b170573d804 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_domain_classify/29e50e32fad939cfb4f81e41babf701b62ae9e35 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_domain_classify/2bb953bdd42b4e1f04bd8e0be26ef8cfc77b686f 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_domain_classify/304ffc88b8aba511ba115643aaca30a57cf3a39f 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_domain_classify/334b5776531596fbf87f4003b59e59eed55fc064 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_domain_classify/339145dd705eaa3a3507c66682f4af74d8992de7 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_domain_classify/418b6bf6865a11f3aea753a7bc424f14c324ad02 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_domain_classify/437fafa21180ba3e97eee66d9f0d6e7ee384c792 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_domain_classify/438b9c851cab4d3000cf67e9c79f61102cf0edf7 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_domain_classify/4887d5f71acee372a80a51f854db00a9ac6ad4b1 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_domain_classify/511856a6624c10a5b873c94c9c353d7c40f55d13 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 Binary files /dev/null and b/fuzz/corpus/fuzz_ds_domain_classify/548d725eefec486a240420c2a2a052719f6abdfb 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%8UOQAXyϦCT 0;7LS]-.o';:S2]:`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 +#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(); + for (i = 0; i < num_iteration; i++) { + value = fuzzed_data.ConsumeIntegral(); + + 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(); + for (i = 0; i < num_iteration; i++) { + value = fuzzed_data.ConsumeIntegral(); + + 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 +#include +#include +#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(); + for (i = 0; i < num_iteration; i++) { + + value = fuzzed_data.ConsumeBytesAsString(fuzzed_data.ConsumeIntegral()); + class_id = fuzzed_data.ConsumeIntegral(); + + 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(); + for (i = 0; i < num_iteration; i++) { + value = fuzzed_data.ConsumeBytesAsString(fuzzed_data.ConsumeIntegral()); + + 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; iclasses[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