From d48b689ae8cdb0941a2cddfa8b449bf6f6b3f273 Mon Sep 17 00:00:00 2001 From: Martijn van Beurden Date: Fri, 12 Jul 2024 10:43:42 +0200 Subject: [PATCH] Enable fuzzing of writing foreign metadata back on decoding The output file was deleted before writing back foreign metadata could take place, making that code always fail and not covered by fuzzing --- src/flac/decode.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/flac/decode.c b/src/flac/decode.c index 7340ea5d..6a89b144 100644 --- a/src/flac/decode.c +++ b/src/flac/decode.c @@ -304,10 +304,7 @@ void DecoderSession_destroy(DecoderSession *d, FLAC__bool error_occurred) #endif fclose(d->fout); -#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION - /* Always delete output file when fuzzing */ if(error_occurred) -#endif flac_unlink(d->outfilename); } } @@ -582,6 +579,11 @@ int DecoderSession_finish_ok(DecoderSession *d) } } } +#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION + /* Delete output file when fuzzing */ + if(0 != d->fout && d->fout != stdout) + flac_unlink(d->outfilename); +#endif return ok? 0 : 1; }