diff options
author | Tanu Kaskinen <tanuk@iki.fi> | 2018-05-22 18:30:09 +0300 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-05-29 21:07:15 +0100 |
commit | 071cd6feb1d47001c7c465e7caea6106ee1dcb4f (patch) | |
tree | 4cd2e6054ff32ff76af1fc8fed3c9264c8ea2b27 /meta/recipes-multimedia/libvorbis | |
parent | 2dce052962210e6791fc6409f4462d3df2dfb740 (diff) | |
download | poky-071cd6feb1d47001c7c465e7caea6106ee1dcb4f.tar.gz |
libvorbis: 1.3.5 -> 1.3.6
Rebased 0001-configure-Check-for-clang.patch.
Removed the backported CVE patches.
License-Update: copyright years refreshed
(From OE-Core rev: d536c0a0e400c27fd7954402195698e2c639338a)
Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-multimedia/libvorbis')
-rw-r--r-- | meta/recipes-multimedia/libvorbis/libvorbis/0001-configure-Check-for-clang.patch | 20 | ||||
-rw-r--r-- | meta/recipes-multimedia/libvorbis/libvorbis/CVE-2017-14632.patch | 62 | ||||
-rw-r--r-- | meta/recipes-multimedia/libvorbis/libvorbis/CVE-2017-14633.patch | 42 | ||||
-rw-r--r-- | meta/recipes-multimedia/libvorbis/libvorbis/CVE-2018-5146.patch | 100 | ||||
-rw-r--r-- | meta/recipes-multimedia/libvorbis/libvorbis_1.3.6.bb (renamed from meta/recipes-multimedia/libvorbis/libvorbis_1.3.5.bb) | 9 |
5 files changed, 13 insertions, 220 deletions
diff --git a/meta/recipes-multimedia/libvorbis/libvorbis/0001-configure-Check-for-clang.patch b/meta/recipes-multimedia/libvorbis/libvorbis/0001-configure-Check-for-clang.patch index 7dad0cd8a5..b06029b98b 100644 --- a/meta/recipes-multimedia/libvorbis/libvorbis/0001-configure-Check-for-clang.patch +++ b/meta/recipes-multimedia/libvorbis/libvorbis/0001-configure-Check-for-clang.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From 44b4511784f9b51c514dff4ceb3cbeaf9c374d08 Mon Sep 17 00:00:00 2001 | 1 | From d619ccf6c11ab574466914c57994a82fb99401af Mon Sep 17 00:00:00 2001 |
2 | From: Khem Raj <raj.khem@gmail.com> | 2 | From: Khem Raj <raj.khem@gmail.com> |
3 | Date: Wed, 22 Mar 2017 16:06:55 +0000 | 3 | Date: Wed, 22 Mar 2017 16:06:55 +0000 |
4 | Subject: [PATCH] configure: Check for clang | 4 | Subject: [PATCH] configure: Check for clang |
@@ -13,12 +13,12 @@ Upstream-Status: Pending | |||
13 | 1 file changed, 17 insertions(+), 2 deletions(-) | 13 | 1 file changed, 17 insertions(+), 2 deletions(-) |
14 | 14 | ||
15 | diff --git a/configure.ac b/configure.ac | 15 | diff --git a/configure.ac b/configure.ac |
16 | index eddd02d..00ecba5 100644 | 16 | index 28b0a14..2d4e984 100644 |
17 | --- a/configure.ac | 17 | --- a/configure.ac |
18 | +++ b/configure.ac | 18 | +++ b/configure.ac |
19 | @@ -93,6 +93,16 @@ AC_ARG_ENABLE(examples, | 19 | @@ -98,6 +98,16 @@ AC_ARG_ENABLE(examples, |
20 | 20 | ||
21 | AM_CONDITIONAL(BUILD_EXAMPLES, [test "x$enable_examples" = xyes]) | 21 | AM_CONDITIONAL(BUILD_EXAMPLES, [test "x$enable_examples" = xyes]) |
22 | 22 | ||
23 | +AC_MSG_CHECKING([whether C compiler is clang]) | 23 | +AC_MSG_CHECKING([whether C compiler is clang]) |
24 | +$CC -x c /dev/null -dM -E > conftest.txt 2>&1 | 24 | +$CC -x c /dev/null -dM -E > conftest.txt 2>&1 |
@@ -33,9 +33,9 @@ index eddd02d..00ecba5 100644 | |||
33 | dnl -------------------------------------------------- | 33 | dnl -------------------------------------------------- |
34 | dnl Set build flags based on environment | 34 | dnl Set build flags based on environment |
35 | dnl -------------------------------------------------- | 35 | dnl -------------------------------------------------- |
36 | @@ -127,10 +137,15 @@ else | 36 | @@ -132,10 +142,15 @@ else |
37 | AC_MSG_RESULT([$GCC_VERSION]) | 37 | AC_MSG_RESULT([$GCC_VERSION]) |
38 | case $host in | 38 | case $host in |
39 | *86-*-linux*) | 39 | *86-*-linux*) |
40 | + if test "$CC_CLANG" = "1"; then | 40 | + if test "$CC_CLANG" = "1"; then |
41 | + ieeefp="" | 41 | + ieeefp="" |
@@ -43,8 +43,8 @@ index eddd02d..00ecba5 100644 | |||
43 | + ieefp="-mno-ieee-fp" | 43 | + ieefp="-mno-ieee-fp" |
44 | + fi | 44 | + fi |
45 | DEBUG="-g -Wall -Wextra -D_REENTRANT -D__NO_MATH_INLINES -fsigned-char" | 45 | DEBUG="-g -Wall -Wextra -D_REENTRANT -D__NO_MATH_INLINES -fsigned-char" |
46 | - CFLAGS="-O3 -ffast-math -mno-ieee-fp -D_REENTRANT -fsigned-char" | 46 | - CFLAGS="-O3 -Wall -Wextra -ffast-math -mno-ieee-fp -D_REENTRANT -fsigned-char" |
47 | + CFLAGS="-O3 -ffast-math -D_REENTRANT -fsigned-char ${ieefp}" | 47 | + CFLAGS="-O3 -Wall -Wextra -ffast-math -D_REENTRANT -fsigned-char ${ieefp}" |
48 | # PROFILE="-Wall -Wextra -pg -g -O3 -ffast-math -D_REENTRANT -fsigned-char -fno-inline -static" | 48 | # PROFILE="-Wall -Wextra -pg -g -O3 -ffast-math -D_REENTRANT -fsigned-char -fno-inline -static" |
49 | - PROFILE="-Wall -Wextra -pg -g -O3 -ffast-math -mno-ieee-fp -D_REENTRANT -fsigned-char -fno-inline" | 49 | - PROFILE="-Wall -Wextra -pg -g -O3 -ffast-math -mno-ieee-fp -D_REENTRANT -fsigned-char -fno-inline" |
50 | + PROFILE="-Wall -Wextra -pg -g -O3 -ffast-math ${ieefp} -D_REENTRANT -fsigned-char -fno-inline" | 50 | + PROFILE="-Wall -Wextra -pg -g -O3 -ffast-math ${ieefp} -D_REENTRANT -fsigned-char -fno-inline" |
@@ -52,5 +52,5 @@ index eddd02d..00ecba5 100644 | |||
52 | # glibc < 2.1.3 has a serious FP bug in the math inline header | 52 | # glibc < 2.1.3 has a serious FP bug in the math inline header |
53 | # that will cripple Vorbis. Look to see if the magic FP stack | 53 | # that will cripple Vorbis. Look to see if the magic FP stack |
54 | -- | 54 | -- |
55 | 1.8.3.1 | 55 | 2.17.0 |
56 | 56 | ||
diff --git a/meta/recipes-multimedia/libvorbis/libvorbis/CVE-2017-14632.patch b/meta/recipes-multimedia/libvorbis/libvorbis/CVE-2017-14632.patch deleted file mode 100644 index 4036b966fe..0000000000 --- a/meta/recipes-multimedia/libvorbis/libvorbis/CVE-2017-14632.patch +++ /dev/null | |||
@@ -1,62 +0,0 @@ | |||
1 | From 39704ce16835e5c019bb03f6a94dc1f0677406c5 Mon Sep 17 00:00:00 2001 | ||
2 | From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org> | ||
3 | Date: Wed, 15 Nov 2017 18:22:59 +0100 | ||
4 | Subject: [PATCH] CVE-2017-14632: vorbis_analysis_header_out: Don't clear opb | ||
5 | if not initialized | ||
6 | |||
7 | If the number of channels is not within the allowed range | ||
8 | we call oggback_writeclear altough it's not initialized yet. | ||
9 | |||
10 | This fixes | ||
11 | |||
12 | =23371== Invalid free() / delete / delete[] / realloc() | ||
13 | ==23371== at 0x4C2CE1B: free (vg_replace_malloc.c:530) | ||
14 | ==23371== by 0x829CA31: oggpack_writeclear (in /usr/lib/x86_64-linux-gnu/libogg.so.0.8.2) | ||
15 | ==23371== by 0x84B96EE: vorbis_analysis_headerout (info.c:652) | ||
16 | ==23371== by 0x9FBCBCC: ??? (in /usr/lib/x86_64-linux-gnu/sox/libsox_fmt_vorbis.so) | ||
17 | ==23371== by 0x4E524F1: ??? (in /usr/lib/x86_64-linux-gnu/libsox.so.2.0.1) | ||
18 | ==23371== by 0x4E52CCA: sox_open_write (in /usr/lib/x86_64-linux-gnu/libsox.so.2.0.1) | ||
19 | ==23371== by 0x10D82A: open_output_file (sox.c:1556) | ||
20 | ==23371== by 0x10D82A: process (sox.c:1753) | ||
21 | ==23371== by 0x10D82A: main (sox.c:3012) | ||
22 | ==23371== Address 0x68768c8 is 488 bytes inside a block of size 880 alloc'd | ||
23 | ==23371== at 0x4C2BB1F: malloc (vg_replace_malloc.c:298) | ||
24 | ==23371== by 0x4C2DE9F: realloc (vg_replace_malloc.c:785) | ||
25 | ==23371== by 0x4E545C2: lsx_realloc (in /usr/lib/x86_64-linux-gnu/libsox.so.2.0.1) | ||
26 | ==23371== by 0x9FBC9A0: ??? (in /usr/lib/x86_64-linux-gnu/sox/libsox_fmt_vorbis.so) | ||
27 | ==23371== by 0x4E524F1: ??? (in /usr/lib/x86_64-linux-gnu/libsox.so.2.0.1) | ||
28 | ==23371== by 0x4E52CCA: sox_open_write (in /usr/lib/x86_64-linux-gnu/libsox.so.2.0.1) | ||
29 | ==23371== by 0x10D82A: open_output_file (sox.c:1556) | ||
30 | ==23371== by 0x10D82A: process (sox.c:1753) | ||
31 | ==23371== by 0x10D82A: main (sox.c:3012) | ||
32 | |||
33 | as seen when using the testcase from CVE-2017-11333 with | ||
34 | 008d23b782be09c8d75ba8190b1794abd66c7121 applied. However the error was | ||
35 | there before. | ||
36 | |||
37 | Upstream-Status: Backport | ||
38 | CVE: CVE-2017-14632 | ||
39 | |||
40 | Reference to upstream patch: | ||
41 | https://git.xiph.org/?p=vorbis.git;a=commitdiff;h=c1c2831fc7306d5fbd7bc800324efd12b28d327f | ||
42 | |||
43 | Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> | ||
44 | --- | ||
45 | lib/info.c | 1 + | ||
46 | 1 file changed, 1 insertion(+) | ||
47 | |||
48 | diff --git a/lib/info.c b/lib/info.c | ||
49 | index 81b7557..4d82568 100644 | ||
50 | --- a/lib/info.c | ||
51 | +++ b/lib/info.c | ||
52 | @@ -584,6 +584,7 @@ int vorbis_analysis_headerout(vorbis_dsp_state *v, | ||
53 | private_state *b=v->backend_state; | ||
54 | |||
55 | if(!b||vi->channels<=0||vi->channels>256){ | ||
56 | + b = NULL; | ||
57 | ret=OV_EFAULT; | ||
58 | goto err_out; | ||
59 | } | ||
60 | -- | ||
61 | 2.16.2 | ||
62 | |||
diff --git a/meta/recipes-multimedia/libvorbis/libvorbis/CVE-2017-14633.patch b/meta/recipes-multimedia/libvorbis/libvorbis/CVE-2017-14633.patch deleted file mode 100644 index 9c9e688d43..0000000000 --- a/meta/recipes-multimedia/libvorbis/libvorbis/CVE-2017-14633.patch +++ /dev/null | |||
@@ -1,42 +0,0 @@ | |||
1 | From 07eda55f336e5c44dfc0e4a1e21628faed7255fa Mon Sep 17 00:00:00 2001 | ||
2 | From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org> | ||
3 | Date: Tue, 31 Oct 2017 18:32:46 +0100 | ||
4 | Subject: [PATCH] CVE-2017-14633: Don't allow for more than 256 channels | ||
5 | |||
6 | Otherwise | ||
7 | |||
8 | for(i=0;i<vi->channels;i++){ | ||
9 | /* the encoder setup assumes that all the modes used by any | ||
10 | specific bitrate tweaking use the same floor */ | ||
11 | int submap=info->chmuxlist[i]; | ||
12 | |||
13 | overreads later in mapping0_forward since chmuxlist is a fixed array of | ||
14 | 256 elements max. | ||
15 | |||
16 | Upstream-Status: Backport | ||
17 | CVE: CVE-2017-14633 | ||
18 | |||
19 | Reference to upstream patch: | ||
20 | https://git.xiph.org/?p=vorbis.git;a=commitdiff;h=667ceb4aab60c1f74060143bb24e5f427b3cce5f | ||
21 | |||
22 | Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> | ||
23 | --- | ||
24 | lib/info.c | 2 +- | ||
25 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
26 | |||
27 | diff --git a/lib/info.c b/lib/info.c | ||
28 | index e447a0c..81b7557 100644 | ||
29 | --- a/lib/info.c | ||
30 | +++ b/lib/info.c | ||
31 | @@ -583,7 +583,7 @@ int vorbis_analysis_headerout(vorbis_dsp_state *v, | ||
32 | oggpack_buffer opb; | ||
33 | private_state *b=v->backend_state; | ||
34 | |||
35 | - if(!b||vi->channels<=0){ | ||
36 | + if(!b||vi->channels<=0||vi->channels>256){ | ||
37 | ret=OV_EFAULT; | ||
38 | goto err_out; | ||
39 | } | ||
40 | -- | ||
41 | 2.16.2 | ||
42 | |||
diff --git a/meta/recipes-multimedia/libvorbis/libvorbis/CVE-2018-5146.patch b/meta/recipes-multimedia/libvorbis/libvorbis/CVE-2018-5146.patch deleted file mode 100644 index 6d4052a872..0000000000 --- a/meta/recipes-multimedia/libvorbis/libvorbis/CVE-2018-5146.patch +++ /dev/null | |||
@@ -1,100 +0,0 @@ | |||
1 | From 3a017f591457bf6e80231b563bf83ee583fdbca8 Mon Sep 17 00:00:00 2001 | ||
2 | From: Thomas Daede <daede003@umn.edu> | ||
3 | Date: Thu, 15 Mar 2018 14:15:31 -0700 | ||
4 | Subject: [PATCH] CVE-2018-5146: Prevent out-of-bounds write in codebook | ||
5 | decoding. | ||
6 | |||
7 | Codebooks that are not an exact divisor of the partition size are now | ||
8 | truncated to fit within the partition. | ||
9 | |||
10 | Upstream-Status: Backport | ||
11 | CVE: CVE-2018-5146 | ||
12 | |||
13 | Reference to upstream patch: | ||
14 | https://git.xiph.org/?p=vorbis.git;a=commitdiff;h=667ceb4aab60c1f74060143bb24e5f427b3cce5f | ||
15 | |||
16 | Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> | ||
17 | --- | ||
18 | lib/codebook.c | 48 ++++++++++-------------------------------------- | ||
19 | 1 file changed, 10 insertions(+), 38 deletions(-) | ||
20 | |||
21 | diff --git a/lib/codebook.c b/lib/codebook.c | ||
22 | index 8b766e8..7022fd2 100644 | ||
23 | --- a/lib/codebook.c | ||
24 | +++ b/lib/codebook.c | ||
25 | @@ -387,7 +387,7 @@ long vorbis_book_decodevs_add(codebook *book,float *a,oggpack_buffer *b,int n){ | ||
26 | t[i] = book->valuelist+entry[i]*book->dim; | ||
27 | } | ||
28 | for(i=0,o=0;i<book->dim;i++,o+=step) | ||
29 | - for (j=0;j<step;j++) | ||
30 | + for (j=0;o+j<n && j<step;j++) | ||
31 | a[o+j]+=t[j][i]; | ||
32 | } | ||
33 | return(0); | ||
34 | @@ -399,41 +399,12 @@ long vorbis_book_decodev_add(codebook *book,float *a,oggpack_buffer *b,int n){ | ||
35 | int i,j,entry; | ||
36 | float *t; | ||
37 | |||
38 | - if(book->dim>8){ | ||
39 | - for(i=0;i<n;){ | ||
40 | - entry = decode_packed_entry_number(book,b); | ||
41 | - if(entry==-1)return(-1); | ||
42 | - t = book->valuelist+entry*book->dim; | ||
43 | - for (j=0;j<book->dim;) | ||
44 | - a[i++]+=t[j++]; | ||
45 | - } | ||
46 | - }else{ | ||
47 | - for(i=0;i<n;){ | ||
48 | - entry = decode_packed_entry_number(book,b); | ||
49 | - if(entry==-1)return(-1); | ||
50 | - t = book->valuelist+entry*book->dim; | ||
51 | - j=0; | ||
52 | - switch((int)book->dim){ | ||
53 | - case 8: | ||
54 | - a[i++]+=t[j++]; | ||
55 | - case 7: | ||
56 | - a[i++]+=t[j++]; | ||
57 | - case 6: | ||
58 | - a[i++]+=t[j++]; | ||
59 | - case 5: | ||
60 | - a[i++]+=t[j++]; | ||
61 | - case 4: | ||
62 | - a[i++]+=t[j++]; | ||
63 | - case 3: | ||
64 | - a[i++]+=t[j++]; | ||
65 | - case 2: | ||
66 | - a[i++]+=t[j++]; | ||
67 | - case 1: | ||
68 | - a[i++]+=t[j++]; | ||
69 | - case 0: | ||
70 | - break; | ||
71 | - } | ||
72 | - } | ||
73 | + for(i=0;i<n;){ | ||
74 | + entry = decode_packed_entry_number(book,b); | ||
75 | + if(entry==-1)return(-1); | ||
76 | + t = book->valuelist+entry*book->dim; | ||
77 | + for(j=0;i<n && j<book->dim;) | ||
78 | + a[i++]+=t[j++]; | ||
79 | } | ||
80 | } | ||
81 | return(0); | ||
82 | @@ -471,12 +442,13 @@ long vorbis_book_decodevv_add(codebook *book,float **a,long offset,int ch, | ||
83 | long i,j,entry; | ||
84 | int chptr=0; | ||
85 | if(book->used_entries>0){ | ||
86 | - for(i=offset/ch;i<(offset+n)/ch;){ | ||
87 | + int m=(offset+n)/ch; | ||
88 | + for(i=offset/ch;i<m;){ | ||
89 | entry = decode_packed_entry_number(book,b); | ||
90 | if(entry==-1)return(-1); | ||
91 | { | ||
92 | const float *t = book->valuelist+entry*book->dim; | ||
93 | - for (j=0;j<book->dim;j++){ | ||
94 | + for (j=0;i<m && j<book->dim;j++){ | ||
95 | a[chptr++][i]+=t[j]; | ||
96 | if(chptr==ch){ | ||
97 | chptr=0; | ||
98 | -- | ||
99 | 2.16.2 | ||
100 | |||
diff --git a/meta/recipes-multimedia/libvorbis/libvorbis_1.3.5.bb b/meta/recipes-multimedia/libvorbis/libvorbis_1.3.6.bb index 20f887c252..bd46451612 100644 --- a/meta/recipes-multimedia/libvorbis/libvorbis_1.3.5.bb +++ b/meta/recipes-multimedia/libvorbis/libvorbis_1.3.6.bb | |||
@@ -6,17 +6,14 @@ HOMEPAGE = "http://www.vorbis.com/" | |||
6 | BUGTRACKER = "https://trac.xiph.org" | 6 | BUGTRACKER = "https://trac.xiph.org" |
7 | SECTION = "libs" | 7 | SECTION = "libs" |
8 | LICENSE = "BSD" | 8 | LICENSE = "BSD" |
9 | LIC_FILES_CHKSUM = "file://COPYING;md5=7d2c487d2fc7dd3e3c7c465a5b7f6217 \ | 9 | LIC_FILES_CHKSUM = "file://COPYING;md5=70c7063491d2d9f76a098d62ed5134f1 \ |
10 | file://include/vorbis/vorbisenc.h;beginline=1;endline=11;md5=d1c1d138863d6315131193d4046d81cb" | 10 | file://include/vorbis/vorbisenc.h;beginline=1;endline=11;md5=d1c1d138863d6315131193d4046d81cb" |
11 | DEPENDS = "libogg" | 11 | DEPENDS = "libogg" |
12 | 12 | ||
13 | SRC_URI = "http://downloads.xiph.org/releases/vorbis/${BP}.tar.xz \ | 13 | SRC_URI = "http://downloads.xiph.org/releases/vorbis/${BP}.tar.xz \ |
14 | file://0001-configure-Check-for-clang.patch \ | 14 | file://0001-configure-Check-for-clang.patch \ |
15 | file://CVE-2017-14633.patch \ | ||
16 | file://CVE-2017-14632.patch \ | ||
17 | file://CVE-2018-5146.patch \ | ||
18 | " | 15 | " |
19 | SRC_URI[md5sum] = "28cb28097c07a735d6af56e598e1c90f" | 16 | SRC_URI[md5sum] = "b7d1692f275c73e7833ed1cc2697cd65" |
20 | SRC_URI[sha256sum] = "54f94a9527ff0a88477be0a71c0bab09a4c3febe0ed878b24824906cd4b0e1d1" | 17 | SRC_URI[sha256sum] = "af00bb5a784e7c9e69f56823de4637c350643deedaf333d0fa86ecdba6fcb415" |
21 | 18 | ||
22 | inherit autotools pkgconfig | 19 | inherit autotools pkgconfig |