aboutsummaryrefslogtreecommitdiff
path: root/tests/ossfuzz.sh
diff options
context:
space:
mode:
authorNardi Ivan <nardi.ivan@gmail.com>2023-06-12 14:00:00 +0200
committerIvan Nardi <12729895+IvanNardi@users.noreply.github.com>2023-06-12 15:17:56 +0200
commit96340ccea22fc5deeba6a4fd523a6d0d0fbde5cb (patch)
tree73019e1463e83807d60d2cce14b1b719cc48519a /tests/ossfuzz.sh
parent63a2b359b9bbc481ef266407791f09fd12be8fc4 (diff)
oss-fuzz: sync build script with upstream
File copied from https://github.com/google/oss-fuzz/blob/master/projects/ndpi/build.sh The general idea is to keep the build script in our repository and use it from oss-fuzz builder: updating it from our side is easier and faster then passing via an oss-fuzz PR. The original idea is from @utoni in 3068306b60. Once this change has been merged, we can update the code in oss-fuzz.
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/