diff options
author | Pacho Ramos <pacho@gentoo.org> | 2018-04-21 16:34:19 +0200 |
---|---|---|
committer | Pacho Ramos <pacho@gentoo.org> | 2018-04-21 16:37:51 +0200 |
commit | d3251f82484c3f9b488a3f1fa1d87f9e0172cdbd (patch) | |
tree | afb93b4ba057ce5640d65a5e8678f3ecf5066689 /media-sound | |
parent | sys-devel/clang-runtime: bump SLOT to 6.0.1 (diff) | |
download | gentoo-d3251f82484c3f9b488a3f1fa1d87f9e0172cdbd.tar.gz gentoo-d3251f82484c3f9b488a3f1fa1d87f9e0172cdbd.tar.bz2 gentoo-d3251f82484c3f9b488a3f1fa1d87f9e0172cdbd.zip |
media-sound/mp3gain: Bump (#630954), fix CVE-2017-12911 (#635548)
Package-Manager: Portage-2.3.28, Repoman-2.3.9
Diffstat (limited to 'media-sound')
-rw-r--r-- | media-sound/mp3gain/Manifest | 1 | ||||
-rw-r--r-- | media-sound/mp3gain/files/mp3gain-1.6.1-CVE-2017-12911.patch | 77 | ||||
-rw-r--r-- | media-sound/mp3gain/mp3gain-1.6.1.ebuild | 34 |
3 files changed, 112 insertions, 0 deletions
diff --git a/media-sound/mp3gain/Manifest b/media-sound/mp3gain/Manifest index e9eedc0a4457..8dadde8a3c5b 100644 --- a/media-sound/mp3gain/Manifest +++ b/media-sound/mp3gain/Manifest @@ -1 +1,2 @@ DIST mp3gain-1_5_2-src.zip 129435 BLAKE2B 39ad12a09e58375c23602939097622fda0cb6b7487e95947d5443fce55f4d2163c15df619f96b1839acf99bba9ed8ad1990bab287e1392c30813d185d823d734 SHA512 1a7ac51bf0108c1f6fbd610c513bf7fd2c64d340a2ba23dc9fa5c3b896b279474f31f2d60318f409576e39f7643dd585d3e159e2a4db4553f7c9cc3761b7f388 +DIST mp3gain-1_6_1-src.zip 68932 BLAKE2B 8c1ed35123f1613e189ec7bd74ee9f6176404a1b79c660f8f1a6df461cdfd3c6bb505daa09b8cc4756e1755d0923fe473a45c3ae171fcf35df22daaa08a7717a SHA512 6d26a7716a1901c80caff9d7fb03a454a452c06c6a57a7a921d5979727e112ba139690d8a287dde7a6e5a09b022d3c6f57193b4756a9c25caa177cef65f9e375 diff --git a/media-sound/mp3gain/files/mp3gain-1.6.1-CVE-2017-12911.patch b/media-sound/mp3gain/files/mp3gain-1.6.1-CVE-2017-12911.patch new file mode 100644 index 000000000000..0b5a32280963 --- /dev/null +++ b/media-sound/mp3gain/files/mp3gain-1.6.1-CVE-2017-12911.patch @@ -0,0 +1,77 @@ +--- a/apetag.c ++++ b/apetag.c +@@ -49,6 +49,12 @@ + + static int Lyrics3GetNumber6 ( const unsigned char* string ) + { ++ if (string[0] < '0' || string[0] > '9') return 0; ++ if (string[1] < '0' || string[1] > '9') return 0; ++ if (string[2] < '0' || string[2] > '9') return 0; ++ if (string[3] < '0' || string[3] > '9') return 0; ++ if (string[4] < '0' || string[4] > '9') return 0; ++ if (string[5] < '0' || string[5] > '9') return 0; + return ( string[0] - '0') * 100000 + + ( string[1] - '0') * 10000 + + ( string[2] - '0') * 1000 + +@@ -86,12 +92,14 @@ + free(*id3tagbuff); + *id3tagbuff = (unsigned char *)malloc(128); + memcpy(*id3tagbuff,tmpid3,128); ++ if ( *tag_offset < (128 + (long)(sizeof(T))) ) return 0; + if ( fseek (fp, *tag_offset - 128 - sizeof (T), SEEK_SET) ) return 0; + if ( fread (&T, 1, sizeof (T), fp) != sizeof (T) ) return 0; + // check for lyrics3 v2.00 tag + if ( memcmp (T.ID, "LYRICS200", sizeof (T.ID)) ) return 0; + len = Lyrics3GetNumber6 (T.Length); +- if ( fseek (fp, *tag_offset - 128 - (int)sizeof (T) - len, SEEK_SET) ) return 0; ++ if (*tag_offset < (128 + (long)(sizeof(T)) + len)) return 0; ++ if ( fseek (fp, *tag_offset - 128 - (long)sizeof (T) - len, SEEK_SET) ) return 0; + if ( fread (tmp, 1, 11, fp) != 11 ) return 0; + if ( memcmp (tmp, "LYRICSBEGIN", 11) ) return 0; + +@@ -167,6 +175,7 @@ + Ver = Read_LE_Uint32 (T.Version); + if ( (Ver != 1000) && (Ver != 2000) ) return 0; + if ( (TagLen = Read_LE_Uint32 (T.Length)) < sizeof (T) ) return 0; ++ if (*tag_offset < TagLen) return 0; + if ( fseek (fp, *tag_offset - TagLen, SEEK_SET) ) return 0; + buff = (char *)malloc (TagLen); + if ( fread (buff, 1, TagLen - sizeof (T), fp) != (TagLen - sizeof (T)) ) { +@@ -285,6 +294,7 @@ + (*apeTag)->originalTagSize = TagLen; + + if ( Read_LE_Uint32 (T.Flags) & (1<<31) ) { // Tag contains header ++ if (*tag_offset < (long)(sizeof(T))) return 0; + *tag_offset -= sizeof (T); + + fseek (fp, *tag_offset, SEEK_SET); +@@ -355,14 +365,14 @@ + */ + int ReadMP3GainAPETag (char *filename, struct MP3GainTagInfo *info, struct FileTagsStruct *fileTags) { + FILE *fi; +- long tag_offset, offs_bk; ++ long tag_offset, offs_bk, file_size; + + fi = fopen(filename, "rb"); + if (fi == NULL) + return 0; + + fseek(fi, 0, SEEK_END); +- tag_offset = ftell(fi); ++ tag_offset = file_size = ftell(fi); + + fileTags->lyrics3TagSize = 0; + +@@ -373,7 +383,11 @@ + ReadMP3ID3v1Tag ( fi, &(fileTags->id31tag), &tag_offset ); + } while ( offs_bk != tag_offset ); + +- fileTags->tagOffset = tag_offset; ++ if (tag_offset >= 0 && tag_offset <= file_size) { ++ fileTags->tagOffset = tag_offset; ++ } else { //Corrupt tag information, simply default to end-of-file ++ fileTags->tagOffset = file_size; ++ } + + fclose(fi); +
\ No newline at end of file diff --git a/media-sound/mp3gain/mp3gain-1.6.1.ebuild b/media-sound/mp3gain/mp3gain-1.6.1.ebuild new file mode 100644 index 000000000000..81548cbb0e12 --- /dev/null +++ b/media-sound/mp3gain/mp3gain-1.6.1.ebuild @@ -0,0 +1,34 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +inherit toolchain-funcs + +MY_P="${P//./_}" + +DESCRIPTION="A program to analyze and adjust MP3 files to same volume" +HOMEPAGE="http://mp3gain.sourceforge.net/" +SRC_URI="mirror://sourceforge/${PN}/${MY_P}-src.zip" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~hppa ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos" +IUSE="" + +RDEPEND=" + app-arch/unzip + media-sound/mpg123 +" +DEPEND="${RDEPEND}" + +PATCHES=( "${FILESDIR}"/${P}-CVE-2017-12911.patch ) + +S="${WORKDIR}" + +src_compile() { + emake CC="$(tc-getCC)" +} + +src_install() { + dobin mp3gain +} |