diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2019-01-23 12:02:34 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2019-01-23 12:02:36 +0100 |
commit | 8c67b43ba17938f027fc343333e021962de0f9e1 (patch) | |
tree | c6511594ece552ca5ce04b08a41359b537d28cc1 /thirdparty | |
parent | f4b747d3e628c85f4ccb1be6286f0169372e0a2c (diff) |
theora: Add upstream patch to fix UB warning
Patch from https://git.xiph.org/?p=theora.git;a=commit;h=0ae66d565e6bead8604d312bc1a4e9dccf245c88
Fixes #25221.
Diffstat (limited to 'thirdparty')
-rw-r--r-- | thirdparty/README.md | 3 | ||||
-rw-r--r-- | thirdparty/libtheora/decode.c | 8 | ||||
-rw-r--r-- | thirdparty/libtheora/patches/theora.git-0ae66d565e6bead8604d312bc1a4e9dccf245c88.patch | 38 |
3 files changed, 45 insertions, 4 deletions
diff --git a/thirdparty/README.md b/thirdparty/README.md index 186f183ea2..738835c70a 100644 --- a/thirdparty/README.md +++ b/thirdparty/README.md @@ -202,6 +202,9 @@ Files extracted from upstream source: - all .h files in include/theora/ as theora/ - COPYING and LICENSE +Upstream patches included in the `patches` directory have been applied +on top of the 1.1.1 source (not included in any stable release yet). + ## libvorbis diff --git a/thirdparty/libtheora/decode.c b/thirdparty/libtheora/decode.c index 7be66463d8..bde967b794 100644 --- a/thirdparty/libtheora/decode.c +++ b/thirdparty/libtheora/decode.c @@ -397,10 +397,10 @@ static int oc_dec_init(oc_dec_ctx *_dec,const th_info *_info, int qsum; qsum=0; for(qti=0;qti<2;qti++)for(pli=0;pli<3;pli++){ - qsum+=_dec->state.dequant_tables[qti][pli][qi][12]+ - _dec->state.dequant_tables[qti][pli][qi][17]+ - _dec->state.dequant_tables[qti][pli][qi][18]+ - _dec->state.dequant_tables[qti][pli][qi][24]<<(pli==0); + qsum+=_dec->state.dequant_tables[qi][pli][qti][12]+ + _dec->state.dequant_tables[qi][pli][qti][17]+ + _dec->state.dequant_tables[qi][pli][qti][18]+ + _dec->state.dequant_tables[qi][pli][qti][24]<<(pli==0); } _dec->pp_sharp_mod[qi]=-(qsum>>11); } diff --git a/thirdparty/libtheora/patches/theora.git-0ae66d565e6bead8604d312bc1a4e9dccf245c88.patch b/thirdparty/libtheora/patches/theora.git-0ae66d565e6bead8604d312bc1a4e9dccf245c88.patch new file mode 100644 index 0000000000..1b9c8e20be --- /dev/null +++ b/thirdparty/libtheora/patches/theora.git-0ae66d565e6bead8604d312bc1a4e9dccf245c88.patch @@ -0,0 +1,38 @@ +From 0ae66d565e6bead8604d312bc1a4e9dccf245c88 Mon Sep 17 00:00:00 2001 +From: Tim Terriberry <tterribe@xiph.org> +Date: Tue, 8 May 2012 02:51:57 +0000 +Subject: [PATCH] Fix pp_sharp_mod calculation. + +This was broken when the dequant_tables indexing changed in commit + r16102, but it only affected post-processing quality, so we never + noticed. +With gcc 4.8.0, this can now trigger a segfault during decoder + initialization. + +svn path=/trunk/theora/; revision=18268 +--- + decode.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/decode.c b/decode.c +index b803505..9f2516a 100644 +--- a/decode.c ++++ b/decode.c +@@ -400,10 +400,10 @@ static int oc_dec_init(oc_dec_ctx *_dec,const th_info *_info, + int qsum; + qsum=0; + for(qti=0;qti<2;qti++)for(pli=0;pli<3;pli++){ +- qsum+=_dec->state.dequant_tables[qti][pli][qi][12]+ +- _dec->state.dequant_tables[qti][pli][qi][17]+ +- _dec->state.dequant_tables[qti][pli][qi][18]+ +- _dec->state.dequant_tables[qti][pli][qi][24]<<(pli==0); ++ qsum+=_dec->state.dequant_tables[qi][pli][qti][12]+ ++ _dec->state.dequant_tables[qi][pli][qti][17]+ ++ _dec->state.dequant_tables[qi][pli][qti][18]+ ++ _dec->state.dequant_tables[qi][pli][qti][24]<<(pli==0); + } + _dec->pp_sharp_mod[qi]=-(qsum>>11); + } +-- +2.11.0 + |