aboutsummaryrefslogtreecommitdiff
path: root/tests/ossfuzz.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ossfuzz.sh')
-rw-r--r--tests/ossfuzz.sh44
1 files changed, 36 insertions, 8 deletions
diff --git a/tests/ossfuzz.sh b/tests/ossfuzz.sh
index 14741fd92..5c622241b 100644
--- a/tests/ossfuzz.sh
+++ b/tests/ossfuzz.sh
@@ -14,19 +14,47 @@
# limitations under the License.
#
################################################################################
+
+if [[ "$SANITIZER" != "memory" ]]; then
+ #Disable code instrumentation
+ CFLAGS_SAVE="$CFLAGS"
+ CXXFLAGS_SAVE="$CXXFLAGS"
+ unset CFLAGS
+ unset CXXFLAGS
+ export AFL_NOOPT=1
+fi
+
# build libpcap
tar -xvzf libpcap-1.9.1.tar.gz
cd libpcap-1.9.1
./configure --disable-shared
-make -j"$(nproc)"
+make -j$(nproc)
make install
cd ..
+
+if [[ "$SANITIZER" != "memory" ]]; then
+ #Re-enable code instrumentation
+ export CFLAGS="${CFLAGS_SAVE}"
+ export CXXFLAGS="${CXXFLAGS_SAVE}"
+ unset AFL_NOOPT
+fi
+
# build project
cd ndpi
-sh autogen.sh
-./configure --enable-fuzztargets
-make
-make -C fuzz fuzz_ndpi_reader_seed_corpus.zip
-# copy fuzz executables to output directory
-cp -v fuzz/fuzz_ndpi_reader "$OUT/"
-cp -v fuzz/fuzz_process_packet "$OUT/"
+# Set LDFLAGS variable and `--with-only-libndpi` option as workaround for the
+# "missing dependencies errors" in the introspector build. See #8939
+LDFLAGS="-lpcap" ./autogen.sh --enable-fuzztargets --with-only-libndpi
+make -j$(nproc)
+# Copy fuzzers
+ls fuzz/fuzz* | grep -v "\." | while read i; do cp $i $OUT/; done
+# Copy dictionaries
+cp fuzz/*.dict $OUT/
+# Copy seed corpus
+cp fuzz/*.zip $OUT/
+# Copy configuration files
+cp example/protos.txt $OUT/
+cp example/categories.txt $OUT/
+cp example/risky_domains.txt $OUT/
+cp example/ja3_fingerprints.csv $OUT/
+cp example/sha1_fingerprints.csv $OUT/
+cp fuzz/ipv4_addresses.txt $OUT/