36 lines
1.2 KiB
Diff
36 lines
1.2 KiB
Diff
|
|
From df57d1d6b009e8044938390b21599d2910f867ea Mon Sep 17 00:00:00 2001
|
||
|
|
From: Martijn van Beurden <mvanb1@gmail.com>
|
||
|
|
Date: Tue, 5 Mar 2024 14:28:26 +0100
|
||
|
|
Subject: [PATCH] Fix format ending up with wrong subformat
|
||
|
|
|
||
|
|
It was possible the format was taken from foreign metadata and the
|
||
|
|
subformat from command-line options.
|
||
|
|
|
||
|
|
Credit: Oss-Fuzz
|
||
|
|
Issue: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=63790
|
||
|
|
---
|
||
|
|
src/flac/main.c | 8 ++++++--
|
||
|
|
1 file changed, 6 insertions(+), 2 deletions(-)
|
||
|
|
|
||
|
|
diff --git a/src/flac/main.c b/src/flac/main.c
|
||
|
|
index d57ad9ccaa..46a2dcc742 100644
|
||
|
|
--- a/src/flac/main.c
|
||
|
|
+++ b/src/flac/main.c
|
||
|
|
@@ -2192,10 +2192,14 @@ int decode_file(const char *infilename)
|
||
|
|
output_format = FORMAT_WAVE;
|
||
|
|
|
||
|
|
/* Now do subformats */
|
||
|
|
- if(option_values.force_legacy_wave_format)
|
||
|
|
+ if(option_values.force_legacy_wave_format) {
|
||
|
|
+ output_format = FORMAT_WAVE;
|
||
|
|
output_subformat = SUBFORMAT_WAVE_PCM;
|
||
|
|
- else if(option_values.force_extensible_wave_format)
|
||
|
|
+ }
|
||
|
|
+ else if(option_values.force_extensible_wave_format) {
|
||
|
|
+ output_format = FORMAT_WAVE;
|
||
|
|
output_subformat = SUBFORMAT_WAVE_EXTENSIBLE;
|
||
|
|
+ }
|
||
|
|
else if(option_values.force_aiff_c_none_format) {
|
||
|
|
output_format = FORMAT_AIFF_C;
|
||
|
|
output_subformat = SUBFORMAT_AIFF_C_NONE;
|