Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>tags/n4.4
@@ -53,6 +53,9 @@ target_dec_%_fuzzer$(EXESUF): target_dec_%_fuzzer.o $(FF_DEP_LIBS) | |||||
tools/target_bsf_%_fuzzer$(EXESUF): tools/target_bsf_%_fuzzer.o $(FF_DEP_LIBS) | tools/target_bsf_%_fuzzer$(EXESUF): tools/target_bsf_%_fuzzer.o $(FF_DEP_LIBS) | ||||
$(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS) $(FF_EXTRALIBS) $(LIBFUZZER_PATH) | $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS) $(FF_EXTRALIBS) $(LIBFUZZER_PATH) | ||||
target_dem_%_fuzzer$(EXESUF): target_dem_%_fuzzer.o $(FF_DEP_LIBS) | |||||
$(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS) $(FF_EXTRALIBS) $(LIBFUZZER_PATH) | |||||
tools/target_dem_fuzzer$(EXESUF): tools/target_dem_fuzzer.o $(FF_DEP_LIBS) | tools/target_dem_fuzzer$(EXESUF): tools/target_dem_fuzzer.o $(FF_DEP_LIBS) | ||||
$(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS) $(FF_EXTRALIBS) $(LIBFUZZER_PATH) | $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS) $(FF_EXTRALIBS) $(LIBFUZZER_PATH) | ||||
@@ -63,6 +66,7 @@ tools/sofa2wavs$(EXESUF): ELIBS = $(FF_EXTRALIBS) | |||||
tools/uncoded_frame$(EXESUF): $(FF_DEP_LIBS) | tools/uncoded_frame$(EXESUF): $(FF_DEP_LIBS) | ||||
tools/uncoded_frame$(EXESUF): ELIBS = $(FF_EXTRALIBS) | tools/uncoded_frame$(EXESUF): ELIBS = $(FF_EXTRALIBS) | ||||
tools/target_dec_%_fuzzer$(EXESUF): $(FF_DEP_LIBS) | tools/target_dec_%_fuzzer$(EXESUF): $(FF_DEP_LIBS) | ||||
tools/target_dem_%_fuzzer$(EXESUF): $(FF_DEP_LIBS) | |||||
CONFIGURABLE_COMPONENTS = \ | CONFIGURABLE_COMPONENTS = \ | ||||
$(wildcard $(FFLIBS:%=$(SRC_PATH)/lib%/all*.c)) \ | $(wildcard $(FFLIBS:%=$(SRC_PATH)/lib%/all*.c)) \ | ||||
@@ -8,6 +8,9 @@ tools/target_dec_%_fuzzer.o: tools/target_dec_fuzzer.c | |||||
tools/target_bsf_%_fuzzer.o: tools/target_bsf_fuzzer.c | tools/target_bsf_%_fuzzer.o: tools/target_bsf_fuzzer.c | ||||
$(COMPILE_C) -DFFMPEG_BSF=$* | $(COMPILE_C) -DFFMPEG_BSF=$* | ||||
tools/target_dem_%_fuzzer.o: tools/target_dem_fuzzer.c | |||||
$(COMPILE_C) -DFFMPEG_DEMUXER=$* -DIO_FLAT=0 | |||||
tools/target_dem_fuzzer.o: tools/target_dem_fuzzer.c | tools/target_dem_fuzzer.o: tools/target_dem_fuzzer.c | ||||
$(COMPILE_C) -DIO_FLAT=1 | $(COMPILE_C) -DIO_FLAT=1 | ||||
@@ -103,8 +103,15 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { | |||||
static int c; | static int c; | ||||
int seekable = 0; | int seekable = 0; | ||||
int ret; | int ret; | ||||
AVInputFormat *fmt = NULL; | |||||
if (!c) { | if (!c) { | ||||
#ifdef FFMPEG_DEMUXER | |||||
#define DEMUXER_SYMBOL0(DEMUXER) ff_##DEMUXER##_demuxer | |||||
#define DEMUXER_SYMBOL(DEMUXER) DEMUXER_SYMBOL0(DEMUXER) | |||||
extern AVInputFormat DEMUXER_SYMBOL(FFMPEG_DEMUXER); | |||||
fmt = &DEMUXER_SYMBOL(FFMPEG_DEMUXER); | |||||
#endif | |||||
av_register_all(); | av_register_all(); | ||||
avcodec_register_all(); | avcodec_register_all(); | ||||
av_log_set_level(AV_LOG_PANIC); | av_log_set_level(AV_LOG_PANIC); | ||||
@@ -166,7 +173,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { | |||||
avfmt->pb = fuzzed_pb; | avfmt->pb = fuzzed_pb; | ||||
ret = avformat_open_input(&avfmt, filename, NULL, NULL); | |||||
ret = avformat_open_input(&avfmt, filename, fmt, NULL); | |||||
if (ret < 0) { | if (ret < 0) { | ||||
av_freep(&fuzzed_pb->buffer); | av_freep(&fuzzed_pb->buffer); | ||||
av_freep(&fuzzed_pb); | av_freep(&fuzzed_pb); | ||||