aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@users.noreply.github.com>2024-05-10 18:25:46 +0200
committerGitHub <noreply@github.com>2024-05-10 17:25:46 +0100
commit204d784aace34ab307f1e5e4d264d2fa7987829d (patch)
treeafd5e5b9408fcc4f7c788f036db3ffdfe2714847
parent26e4aaaafc79d89332403f05c79f31c0340009b7 (diff)
downloadoss-fuzz-upstream-master.tar.gz
[FFmpeg] Add Support for tools/target_enc_fuzzer (#11933)upstream-master
Code is based on the target_dec_fuzzer specific code Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rwxr-xr-xprojects/ffmpeg/build.sh17
1 files changed, 17 insertions, 0 deletions
diff --git a/projects/ffmpeg/build.sh b/projects/ffmpeg/build.sh
index 801d4cf3f..d504c5f3b 100755
--- a/projects/ffmpeg/build.sh
+++ b/projects/ffmpeg/build.sh
@@ -224,6 +224,23 @@ for c in $CONDITIONALS; do
patchelf --set-rpath '$ORIGIN/lib' $OUT/$fuzzer_name
done
+# Build fuzzers for encoders
+CONDITIONALS=$(grep 'ENCODER 1$' config_components.h | sed 's/#define CONFIG_\(.*\)_ENCODER 1/\1/')
+if [ -n "${OSS_FUZZ_CI-}" ]; then
+ # When running in CI, check the first targets only to save time and disk space
+ CONDITIONALS=(${CONDITIONALS[@]:0:2})
+fi
+
+for c in $CONDITIONALS; do
+ fuzzer_name=ffmpeg_AV_CODEC_ID_${c}_fuzzer
+ symbol=$(echo $c | sed "s/.*/\L\0/")
+ echo -en "[libfuzzer]\nmax_len = 1000000\n" >$OUT/${fuzzer_name}.options
+ make tools/target_enc_${symbol}_fuzzer
+ mv tools/target_enc_${symbol}_fuzzer $OUT/${fuzzer_name}
+ patchelf --set-rpath '$ORIGIN/lib' $OUT/$fuzzer_name
+done
+
+
# Build fuzzer for sws
fuzzer_name=ffmpeg_SWS_fuzzer
echo -en "[libfuzzer]\nmax_len = 1000000\n" >$OUT/${fuzzer_name}.options