1
0
Fork 0
firefox/security/nss/automation/taskcluster/scripts/fuzz.sh
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

38 lines
957 B
Bash
Executable file

#!/usr/bin/env bash
source $(dirname "$0")/tools.sh
target="$1"
corpus="$2"
shift 2
# Fetch artifact if needed.
fetch_dist
export DIST=${PWD}/dist
cp -a "${VCS_PATH}/nss" .
# Create and change to corpus directory.
mkdir -p "nss/fuzz/corpus/$corpus"
pushd "nss/fuzz/corpus/$corpus"
# Fetch and unzip the public OSS-Fuzz corpus. Handle the case that there
# may be no corpus yet for new fuzz targets.
code=$(curl -w "%{http_code}" -O "https://storage.googleapis.com/nss-backup.clusterfuzz-external.appspot.com/corpus/libFuzzer/nss_$corpus/public.zip")
if [[ $code -eq 200 ]]; then
unzip public.zip
fi
rm -f public.zip
# Change back to previous working directory.
popd
# Fetch objdir name.
objdir=$(cat dist/latest)
# Get libFuzzer options.
readarray -t options < <(python nss/fuzz/config/libfuzzer_options.py nss/fuzz/options/"$corpus".options)
# Run nssfuzz.
dist/"$objdir"/bin/nssfuzz-"$target" "nss/fuzz/corpus/$corpus" "${options[@]}" "$@"