From 8d0f5aa8879ad4119c6ebdae8db423d8adc9d84c Mon Sep 17 00:00:00 2001 From: Ozkan Sezer Date: Sun, 1 Dec 2019 21:50:02 +0300 Subject: [PATCH] external libs: rebuilt flac with undefined behavior fixes from mainstream --- VisualC/external/lib/x64/libFLAC-8.dll | Bin 436736 -> 436736 bytes VisualC/external/lib/x86/libFLAC-8.dll | Bin 477696 -> 477696 bytes .../Frameworks/FLAC.framework/Versions/A/FLAC | Bin 594684 -> 594684 bytes .../flac-1.3.3/0002a-flac.git-19a0e99.patch | 17 +++------ .../flac-1.3.3/0004a-flac.git-7bc7aeb.patch | 26 +++++-------- .../flac-1.3.3/0005a-flac.git-6455e47.patch | 21 +++++++++++ .../flac-1.3.3/0012-flac.git-d4a1b345.patch | 18 ++++----- .../flac-1.3.3/0013-flac.git-b917d456.patch | 24 +++++------- .../flac-1.3.3/0013a-flac.git-25305d6.patch | 18 ++++----- .../flac-1.3.3/0015c-flac.git-b02e159.patch | 35 ++++++++++++++++++ external/flac-1.3.3/src/libFLAC/bitreader.c | 5 ++- .../flac-1.3.3/src/utils/flacdiff/main.cpp | 2 +- 12 files changed, 98 insertions(+), 68 deletions(-) create mode 100644 external/flac-1.3.3/0005a-flac.git-6455e47.patch create mode 100644 external/flac-1.3.3/0015c-flac.git-b02e159.patch diff --git a/VisualC/external/lib/x64/libFLAC-8.dll b/VisualC/external/lib/x64/libFLAC-8.dll index 13820863b60654dee49d13aed255e0e25dac14ca..14ec5baac8a5f8f1cd6dafe070cc3e2470925fdd 100644 GIT binary patch delta 15356 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 A%K!iX delta 15327 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 diff --git a/VisualC/external/lib/x86/libFLAC-8.dll b/VisualC/external/lib/x86/libFLAC-8.dll index ffac5001da2e7149cc194b1a50b4a07b35be0c99..eae8552450b4a6b0fdf551dd9f55c7deaddede21 100644 GIT binary patch delta 9935 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 H;^qGU?#Y|W delta 6021 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 E1KVeZn*aa+ diff --git a/external/flac-1.3.3/0002a-flac.git-19a0e99.patch b/external/flac-1.3.3/0002a-flac.git-19a0e99.patch index b2037de7..b8c552ec 100644 --- a/external/flac-1.3.3/0002a-flac.git-19a0e99.patch +++ b/external/flac-1.3.3/0002a-flac.git-19a0e99.patch @@ -1,15 +1,13 @@ -From 19a0e99ac3ac5f1fc24d66612668a277ceba8195 Mon Sep 17 00:00:00 2001 From: sezero -Date: Wed, 9 Oct 2019 10:39:11 +0300 -Subject: [PATCH] move the new public get_decoder_client_data function to public header. +Date: Wed, 9 Oct 2019 07:39:11 +0000 (+0300) +Subject: move the new public get_decoder_client_data function to public header. +X-Git-Url: http://git.xiph.org/?p=flac.git;a=commitdiff_plain;h=19a0e99ac3ac5f1fc24d66612668a277ceba8195 +move the new public get_decoder_client_data function to public header. --- - include/FLAC/stream_decoder.h | 10 ++++++++++ - src/libFLAC/include/protected/stream_decoder.h | 5 ----- - 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/include/FLAC/stream_decoder.h b/include/FLAC/stream_decoder.h -index 57215c5..50ebfa8 100644 +index 57215c5e..50ebfa80 100644 --- a/include/FLAC/stream_decoder.h +++ b/include/FLAC/stream_decoder.h @@ -1550,6 +1550,16 @@ FLAC_API FLAC__bool FLAC__stream_decoder_skip_single_frame(FLAC__StreamDecoder * @@ -30,7 +28,7 @@ index 57215c5..50ebfa8 100644 #ifdef __cplusplus diff --git a/src/libFLAC/include/protected/stream_decoder.h b/src/libFLAC/include/protected/stream_decoder.h -index 9909275..2f3996b 100644 +index 99092751..2f3996b3 100644 --- a/src/libFLAC/include/protected/stream_decoder.h +++ b/src/libFLAC/include/protected/stream_decoder.h @@ -57,9 +57,4 @@ typedef struct FLAC__StreamDecoderProtected { @@ -43,6 +41,3 @@ index 9909275..2f3996b 100644 -FLAC_API const void *FLAC__get_decoder_client_data(FLAC__StreamDecoder *decoder); - #endif --- -1.7.1 - diff --git a/external/flac-1.3.3/0004a-flac.git-7bc7aeb.patch b/external/flac-1.3.3/0004a-flac.git-7bc7aeb.patch index 8833b1db..87ec5005 100644 --- a/external/flac-1.3.3/0004a-flac.git-7bc7aeb.patch +++ b/external/flac-1.3.3/0004a-flac.git-7bc7aeb.patch @@ -1,18 +1,13 @@ -From 7bc7aebc7c7f10e3e5252162b668095845cd509a Mon Sep 17 00:00:00 2001 From: NY00123 -Date: Mon, 14 Oct 2019 22:15:18 +0300 -Subject: [PATCH] Replace unsigned with uint32_t in prototypes; Fixes DJGPP builds. +Date: Mon, 14 Oct 2019 19:15:18 +0000 (+0300) +Subject: Replace unsigned with uint32_t in prototypes; Fixes DJGPP builds. +X-Git-Url: http://git.xiph.org/?p=flac.git;a=commitdiff_plain;h=7bc7aebc7c7f10e3e5252162b668095845cd509a +Replace unsigned with uint32_t in prototypes; Fixes DJGPP builds. --- - include/test_libs_common/file_utils_flac.h | 2 +- - include/test_libs_common/metadata_utils.h | 6 +++--- - src/flac/analyze.h | 2 +- - src/flac/encode.h | 2 +- - src/flac/utils.h | 2 +- - 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/include/test_libs_common/file_utils_flac.h b/include/test_libs_common/file_utils_flac.h -index 8b809b8..7687c8f 100644 +index 8b809b85..7687c8f7 100644 --- a/include/test_libs_common/file_utils_flac.h +++ b/include/test_libs_common/file_utils_flac.h @@ -31,6 +31,6 @@ @@ -24,7 +19,7 @@ index 8b809b8..7687c8f 100644 #endif diff --git a/include/test_libs_common/metadata_utils.h b/include/test_libs_common/metadata_utils.h -index ad0f6f5..6bd4e8f 100644 +index ad0f6f58..6bd4e8f6 100644 --- a/include/test_libs_common/metadata_utils.h +++ b/include/test_libs_common/metadata_utils.h @@ -28,9 +28,9 @@ @@ -49,7 +44,7 @@ index ad0f6f5..6bd4e8f 100644 FLAC__bool mutils__compare_block(const FLAC__StreamMetadata *block, const FLAC__StreamMetadata *blockcopy); diff --git a/src/flac/analyze.h b/src/flac/analyze.h -index 7c7ec23..44798c7 100644 +index 7c7ec237..44798c71 100644 --- a/src/flac/analyze.h +++ b/src/flac/analyze.h @@ -26,7 +26,7 @@ typedef struct { @@ -62,7 +57,7 @@ index 7c7ec23..44798c7 100644 #endif diff --git a/src/flac/encode.h b/src/flac/encode.h -index 51c68a4..b98bef6 100644 +index 51c68a40..b98bef6b 100644 --- a/src/flac/encode.h +++ b/src/flac/encode.h @@ -112,6 +112,6 @@ typedef struct { @@ -74,7 +69,7 @@ index 51c68a4..b98bef6 100644 #endif diff --git a/src/flac/utils.h b/src/flac/utils.h -index 6932d3e..36ceb37 100644 +index 6932d3ef..36ceb37d 100644 --- a/src/flac/utils.h +++ b/src/flac/utils.h @@ -62,7 +62,7 @@ void stats_print_name(int level, const char *name); @@ -86,6 +81,3 @@ index 6932d3e..36ceb37 100644 FLAC__bool flac__utils_parse_cue_specification(const char *s, utils__CueSpecification *spec); void flac__utils_canonicalize_cue_specification(const utils__CueSpecification *cue_spec, const FLAC__StreamMetadata_CueSheet *cuesheet, FLAC__uint64 total_samples, utils__SkipUntilSpecification *skip_spec, utils__SkipUntilSpecification *until_spec); --- -1.7.1 - diff --git a/external/flac-1.3.3/0005a-flac.git-6455e47.patch b/external/flac-1.3.3/0005a-flac.git-6455e47.patch new file mode 100644 index 00000000..6102aabe --- /dev/null +++ b/external/flac-1.3.3/0005a-flac.git-6455e47.patch @@ -0,0 +1,21 @@ +From: Andrey Astafyev +Date: Fri, 29 Nov 2019 17:03:25 +0000 (+0300) +Subject: Both files are checked for EOF +X-Git-Url: http://git.xiph.org/?p=flac.git;a=commitdiff_plain;h=6455e477218360899c55f8dbd06c6628260d4123 + +Both files are checked for EOF +--- + +diff --git a/src/utils/flacdiff/main.cpp b/src/utils/flacdiff/main.cpp +index f86b8bbd..6a42db15 100644 +--- a/src/utils/flacdiff/main.cpp ++++ b/src/utils/flacdiff/main.cpp +@@ -166,7 +166,7 @@ static FLAC__off_t get_diff_offset(AutoFILE &f1, AutoFILE &f2) + { + FLAC__off_t off = 0; + while(1) { +- if(feof((FILE*)f1) && feof((FILE*)f1)) { ++ if(feof((FILE*)f1) && feof((FILE*)f2)) { + fprintf(stderr, "ERROR: files are identical\n"); + return -1; + } diff --git a/external/flac-1.3.3/0012-flac.git-d4a1b345.patch b/external/flac-1.3.3/0012-flac.git-d4a1b345.patch index ec37adcf..addab8ea 100644 --- a/external/flac-1.3.3/0012-flac.git-d4a1b345.patch +++ b/external/flac-1.3.3/0012-flac.git-d4a1b345.patch @@ -1,7 +1,9 @@ -From d4a1b345dd16591ff6f17c67ee519afebe2f9792 Mon Sep 17 00:00:00 2001 From: sezero -Date: Tue, 8 Oct 2019 20:25:55 +0300 -Subject: [PATCH] configure.ac: allow several compiler flags for clang +Date: Tue, 8 Oct 2019 17:25:55 +0000 (+0300) +Subject: configure.ac: allow several compiler flags for clang +X-Git-Url: http://git.xiph.org/?p=flac.git;a=commitdiff_plain;h=d4a1b345dd16591ff6f17c67ee519afebe2f9792 + +configure.ac: allow several compiler flags for clang The flac configury marked clang as 'not being gcc' and excluded a lot of compiler switches, most importantly the visibility flags, @@ -26,12 +28,9 @@ Tested compilation using gcc-7.3.1 and clang-5.0.2 on x86_64-linux, and gcc-4.4.7 and clang-3.4.2 on an i686-linux. Also tested cross- compiling for Mac OS X using clang-5.0.2. --- - configure.ac | 18 ++++++++++++++---- - m4/gcc_version.m4 | 3 +++ - 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac -index 6efefaf..88f89a9 100644 +index 6efefaf5..88f89a91 100644 --- a/configure.ac +++ b/configure.ac @@ -429,11 +429,12 @@ dnl If debugging is disabled AND no CFLAGS/CXXFLAGS/CPPFLAGS/LDFLAGS @@ -75,7 +74,7 @@ index 6efefaf..88f89a9 100644 CFLAGS="$CFLAGS -fvisibility=hidden" CXXFLAGS="$CXXFLAGS -fvisibility=hidden" diff --git a/m4/gcc_version.m4 b/m4/gcc_version.m4 -index 1c53086..e6aaa60 100644 +index 1c53086f..e6aaa603 100644 --- a/m4/gcc_version.m4 +++ b/m4/gcc_version.m4 @@ -22,6 +22,9 @@ if test "x$ac_cv_c_compiler_gnu" = "xyes" ; then @@ -88,6 +87,3 @@ index 1c53086..e6aaa60 100644 fi AC_SUBST(GCC_VERSION) --- -1.7.1 - diff --git a/external/flac-1.3.3/0013-flac.git-b917d456.patch b/external/flac-1.3.3/0013-flac.git-b917d456.patch index a341a5a4..9d5687a0 100644 --- a/external/flac-1.3.3/0013-flac.git-b917d456.patch +++ b/external/flac-1.3.3/0013-flac.git-b917d456.patch @@ -1,7 +1,9 @@ -From b917d456d23c3268cc6f466d720605b713d7b9ff Mon Sep 17 00:00:00 2001 From: sezero -Date: Tue, 8 Oct 2019 15:10:20 +0300 -Subject: [PATCH] make dllexport work with compilers other than MSVC +Date: Tue, 8 Oct 2019 12:10:20 +0000 (+0300) +Subject: make dllexport work with compilers other than MSVC +X-Git-Url: http://git.xiph.org/?p=flac.git;a=commitdiff_plain;h=b917d456d23c3268cc6f466d720605b713d7b9ff + +make dllexport work with compilers other than MSVC the issue is, flac and metaflac exes rely on flac_internal_???_utf8() procedures from windows_unicode_filenames.c and there is no easy way @@ -9,14 +11,9 @@ to exclude them from exports without breaking things. So export them explicitly (they are exported anyway w/o this patch), but add a FIXME note about the kludge in windows_unicode_filenames.c. --- - configure.ac | 16 ++++++++++++++++ - include/FLAC++/export.h | 2 +- - include/FLAC/export.h | 2 +- - src/libFLAC/windows_unicode_filenames.c | 19 +++++++++++-------- - 4 files changed, 29 insertions(+), 10 deletions(-) diff --git a/configure.ac b/configure.ac -index 14e2205..6efefaf 100644 +index 14e2205a..6efefaf5 100644 --- a/configure.ac +++ b/configure.ac @@ -493,6 +493,22 @@ if test x$enable_stack_smash_protection = "xyes" ; then @@ -43,7 +40,7 @@ index 14e2205..6efefaf 100644 Makefile \ src/Makefile \ diff --git a/include/FLAC++/export.h b/include/FLAC++/export.h -index 1645362..6776b29 100644 +index 16453621..6776b29c 100644 --- a/include/FLAC++/export.h +++ b/include/FLAC++/export.h @@ -59,7 +59,7 @@ @@ -56,7 +53,7 @@ index 1645362..6776b29 100644 #define FLACPP_API __declspec(dllexport) #else diff --git a/include/FLAC/export.h b/include/FLAC/export.h -index d52f0bb..628fe5f 100644 +index d52f0bbb..628fe5fc 100644 --- a/include/FLAC/export.h +++ b/include/FLAC/export.h @@ -59,7 +59,7 @@ @@ -69,7 +66,7 @@ index d52f0bb..628fe5f 100644 #define FLAC_API __declspec(dllexport) #else diff --git a/src/libFLAC/windows_unicode_filenames.c b/src/libFLAC/windows_unicode_filenames.c -index 7855008..7f59ebe 100644 +index 78550087..7f59ebea 100644 --- a/src/libFLAC/windows_unicode_filenames.c +++ b/src/libFLAC/windows_unicode_filenames.c @@ -37,6 +37,9 @@ @@ -150,6 +147,3 @@ index 7855008..7f59ebe 100644 { if (!utf8_filenames) { return rename(oldname, newname); --- -1.7.1 - diff --git a/external/flac-1.3.3/0013a-flac.git-25305d6.patch b/external/flac-1.3.3/0013a-flac.git-25305d6.patch index 6283b3a5..3e7469ef 100644 --- a/external/flac-1.3.3/0013a-flac.git-25305d6.patch +++ b/external/flac-1.3.3/0013a-flac.git-25305d6.patch @@ -1,16 +1,15 @@ -From 25305d685b52979295064a9b566e697372a9878a Mon Sep 17 00:00:00 2001 From: sezero -Date: Fri, 18 Oct 2019 08:11:10 +0300 -Subject: [PATCH] Fix msvc build after commit b917d456 +Date: Fri, 18 Oct 2019 05:11:10 +0000 (+0300) +Subject: Fix msvc build after commit b917d456 +X-Git-Url: http://git.xiph.org/?p=flac.git;a=commitdiff_plain;h=25305d685b52979295064a9b566e697372a9878a + +Fix msvc build after commit b917d456 Closes: https://github.com/xiph/flac/issues/152 --- - include/share/windows_unicode_filenames.h | 19 +++++++++++-------- - src/libFLAC/windows_unicode_filenames.c | 1 - - 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/include/share/windows_unicode_filenames.h b/include/share/windows_unicode_filenames.h -index 526b30d..94cbeb6 100644 +index 526b30d5..94cbeb6c 100644 --- a/include/share/windows_unicode_filenames.h +++ b/include/share/windows_unicode_filenames.h @@ -39,21 +39,24 @@ @@ -47,7 +46,7 @@ index 526b30d..94cbeb6 100644 #ifdef __cplusplus } /* extern "C" */ diff --git a/src/libFLAC/windows_unicode_filenames.c b/src/libFLAC/windows_unicode_filenames.c -index 7f59ebe..bf3bfe1 100644 +index 7f59ebea..bf3bfe16 100644 --- a/src/libFLAC/windows_unicode_filenames.c +++ b/src/libFLAC/windows_unicode_filenames.c @@ -38,7 +38,6 @@ @@ -58,6 +57,3 @@ index 7f59ebe..bf3bfe1 100644 /* convert UTF-8 back to WCHAR. Caller is responsible for freeing memory */ static wchar_t *wchar_from_utf8(const char *str) --- -1.7.1 - diff --git a/external/flac-1.3.3/0015c-flac.git-b02e159.patch b/external/flac-1.3.3/0015c-flac.git-b02e159.patch new file mode 100644 index 00000000..a82b2a14 --- /dev/null +++ b/external/flac-1.3.3/0015c-flac.git-b02e159.patch @@ -0,0 +1,35 @@ +From: Erik de Castro Lopo +Date: Sun, 24 Nov 2019 03:14:50 +0000 (+1100) +Subject: libFLAC/bitreader.c: Fix shift invoking undefined behaviour +X-Git-Url: http://git.xiph.org/?p=flac.git;a=commitdiff_plain;h=b02e1593525f63aaa4c671e034ff8f0cdc641e46 + +libFLAC/bitreader.c: Fix shift invoking undefined behaviour + +Credit: Oss-Fuzz +Issue: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=19067 +Testcase: fuzzer_decoder-5725157960450048 +--- + +diff --git a/src/libFLAC/bitreader.c b/src/libFLAC/bitreader.c +index e94f8b01..79cb5cc4 100644 +--- a/src/libFLAC/bitreader.c ++++ b/src/libFLAC/bitreader.c +@@ -405,7 +405,8 @@ FLAC__bool FLAC__bitreader_read_raw_uint32(FLAC__BitReader *br, FLAC__uint32 *va + const brword word = br->buffer[br->consumed_words]; + const brword mask = br->consumed_bits < FLAC__BITS_PER_WORD ? FLAC__WORD_ALL_ONES >> br->consumed_bits : 0; + if(bits < n) { +- *val = (FLAC__uint32)((word & mask) >> (n-bits)); /* The result has <= 32 non-zero bits */ ++ uint32_t shift = n - bits; ++ *val = shift < FLAC__BITS_PER_WORD ? (FLAC__uint32)((word & mask) >> shift) : 0; /* The result has <= 32 non-zero bits */ + br->consumed_bits += bits; + return true; + } +@@ -670,7 +671,7 @@ FLAC__bool FLAC__bitreader_read_unary_unsigned(FLAC__BitReader *br, uint32_t *va + *val = 0; + while(1) { + while(br->consumed_words < br->words) { /* if we've not consumed up to a partial tail word... */ +- brword b = br->buffer[br->consumed_words] << br->consumed_bits; ++ brword b = br->consumed_bits < FLAC__BITS_PER_WORD ? br->buffer[br->consumed_words] << br->consumed_bits : 0; + if(b) { + i = COUNT_ZERO_MSBS(b); + *val += i; diff --git a/external/flac-1.3.3/src/libFLAC/bitreader.c b/external/flac-1.3.3/src/libFLAC/bitreader.c index e94f8b01..79cb5cc4 100644 --- a/external/flac-1.3.3/src/libFLAC/bitreader.c +++ b/external/flac-1.3.3/src/libFLAC/bitreader.c @@ -405,7 +405,8 @@ FLAC__bool FLAC__bitreader_read_raw_uint32(FLAC__BitReader *br, FLAC__uint32 *va const brword word = br->buffer[br->consumed_words]; const brword mask = br->consumed_bits < FLAC__BITS_PER_WORD ? FLAC__WORD_ALL_ONES >> br->consumed_bits : 0; if(bits < n) { - *val = (FLAC__uint32)((word & mask) >> (n-bits)); /* The result has <= 32 non-zero bits */ + uint32_t shift = n - bits; + *val = shift < FLAC__BITS_PER_WORD ? (FLAC__uint32)((word & mask) >> shift) : 0; /* The result has <= 32 non-zero bits */ br->consumed_bits += bits; return true; } @@ -670,7 +671,7 @@ FLAC__bool FLAC__bitreader_read_unary_unsigned(FLAC__BitReader *br, uint32_t *va *val = 0; while(1) { while(br->consumed_words < br->words) { /* if we've not consumed up to a partial tail word... */ - brword b = br->buffer[br->consumed_words] << br->consumed_bits; + brword b = br->consumed_bits < FLAC__BITS_PER_WORD ? br->buffer[br->consumed_words] << br->consumed_bits : 0; if(b) { i = COUNT_ZERO_MSBS(b); *val += i; diff --git a/external/flac-1.3.3/src/utils/flacdiff/main.cpp b/external/flac-1.3.3/src/utils/flacdiff/main.cpp index f86b8bbd..6a42db15 100644 --- a/external/flac-1.3.3/src/utils/flacdiff/main.cpp +++ b/external/flac-1.3.3/src/utils/flacdiff/main.cpp @@ -166,7 +166,7 @@ static FLAC__off_t get_diff_offset(AutoFILE &f1, AutoFILE &f2) { FLAC__off_t off = 0; while(1) { - if(feof((FILE*)f1) && feof((FILE*)f1)) { + if(feof((FILE*)f1) && feof((FILE*)f2)) { fprintf(stderr, "ERROR: files are identical\n"); return -1; }