summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe McCann <joem@gentoo.org>2006-01-18 20:45:28 +0000
committerJoe McCann <joem@gentoo.org>2006-01-18 20:45:28 +0000
commit5e3c02cadcac32328b7a01aa3976923daf30b4a2 (patch)
tree336c802d5ea21d57f25eb314fcb465f5a73f03d5 /media-plugins/gst-plugins-ffmpeg
parentuse WORKDIR (diff)
downloadhistorical-5e3c02cadcac32328b7a01aa3976923daf30b4a2.tar.gz
historical-5e3c02cadcac32328b7a01aa3976923daf30b4a2.tar.bz2
historical-5e3c02cadcac32328b7a01aa3976923daf30b4a2.zip
Adding patch for ffmpeg vulnerability. More info available in bug 115760
Package-Manager: portage-2.1_pre3-r1
Diffstat (limited to 'media-plugins/gst-plugins-ffmpeg')
-rw-r--r--media-plugins/gst-plugins-ffmpeg/ChangeLog11
-rw-r--r--media-plugins/gst-plugins-ffmpeg/Manifest27
-rw-r--r--media-plugins/gst-plugins-ffmpeg/files/digest-gst-plugins-ffmpeg-0.10.0-r11
-rw-r--r--media-plugins/gst-plugins-ffmpeg/files/digest-gst-plugins-ffmpeg-0.8.7-r11
-rw-r--r--media-plugins/gst-plugins-ffmpeg/files/ffmpeg_dos.patch88
-rw-r--r--media-plugins/gst-plugins-ffmpeg/gst-plugins-ffmpeg-0.10.0-r1.ebuild53
-rw-r--r--media-plugins/gst-plugins-ffmpeg/gst-plugins-ffmpeg-0.8.7-r1.ebuild71
7 files changed, 239 insertions, 13 deletions
diff --git a/media-plugins/gst-plugins-ffmpeg/ChangeLog b/media-plugins/gst-plugins-ffmpeg/ChangeLog
index 39e5dd8e9fa6..ecdbcbe2bcd5 100644
--- a/media-plugins/gst-plugins-ffmpeg/ChangeLog
+++ b/media-plugins/gst-plugins-ffmpeg/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for media-plugins/gst-plugins-ffmpeg
-# Copyright 2000-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-plugins/gst-plugins-ffmpeg/ChangeLog,v 1.42 2005/12/05 23:10:03 zaheerm Exp $
+# Copyright 2000-2006 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/media-plugins/gst-plugins-ffmpeg/ChangeLog,v 1.43 2006/01/18 20:45:28 joem Exp $
+
+*gst-plugins-ffmpeg-0.10.0-r1 (18 Jan 2006)
+*gst-plugins-ffmpeg-0.8.7-r1 (18 Jan 2006)
+
+ 18 Jan 2006; Joe McCann <joem@gentoo.org> +files/ffmpeg_dos.patch,
+ +gst-plugins-ffmpeg-0.8.7-r1.ebuild, +gst-plugins-ffmpeg-0.10.0-r1.ebuild:
+ Adding patch for ffmpeg vulnerability. More info available in bug 115760
05 Dec 2005; Zaheer Abbas Merali <zaheerm@gentoo.org>
gst-plugins-ffmpeg-0.8.4.ebuild, gst-plugins-ffmpeg-0.8.4-r1.ebuild,
diff --git a/media-plugins/gst-plugins-ffmpeg/Manifest b/media-plugins/gst-plugins-ffmpeg/Manifest
index 09eb8c2df0de..5b6905f19218 100644
--- a/media-plugins/gst-plugins-ffmpeg/Manifest
+++ b/media-plugins/gst-plugins-ffmpeg/Manifest
@@ -1,17 +1,22 @@
-MD5 b2ee7964fb68b8d1930e482f1ebc9731 gst-plugins-ffmpeg-0.8.7.ebuild 1551
-MD5 054ebc6de6df9d72f7c22f5352aedddc gst-plugins-ffmpeg-0.8.4-r1.ebuild 1681
-MD5 e71143901d9b301f20a71ae2667d5d12 gst-plugins-ffmpeg-0.8.4.ebuild 1487
-MD5 7251fdac77e8a3ab01f83718c6074cfe gst-plugins-ffmpeg-0.8.6.ebuild 1663
-MD5 bd9a573e4c8653240c98a7b3cb718210 gst-plugins-ffmpeg-0.10.0.ebuild 1261
-MD5 d3fd16950041773cb07e314b73140b31 gst-plugins-ffmpeg-0.8.5.ebuild 1618
-MD5 442300b796f379b123b96b89f2bde00c ChangeLog 6148
-MD5 6cf6f97e79b43eaf70fa938c431342a3 metadata.xml 181
+MD5 ccd81c3f48ea4d7d082bee01221802b3 ChangeLog 6455
+MD5 4e1e8378e4303b131780f2b9263a6810 files/digest-gst-plugins-ffmpeg-0.10.0 71
+MD5 4e1e8378e4303b131780f2b9263a6810 files/digest-gst-plugins-ffmpeg-0.10.0-r1 71
MD5 bca5ec805820433590977e10928cc8a3 files/digest-gst-plugins-ffmpeg-0.8.4 70
+MD5 bca5ec805820433590977e10928cc8a3 files/digest-gst-plugins-ffmpeg-0.8.4-r1 70
MD5 1f3f598337071d9fb75bd2ced0fd0ce5 files/digest-gst-plugins-ffmpeg-0.8.5 70
MD5 116ed34f4ffdbba9366d3d73de065842 files/digest-gst-plugins-ffmpeg-0.8.6 70
MD5 7a94bdb0f81ff1bb5d568333930d5b20 files/digest-gst-plugins-ffmpeg-0.8.7 70
-MD5 bca5ec805820433590977e10928cc8a3 files/digest-gst-plugins-ffmpeg-0.8.4-r1 70
+MD5 7a94bdb0f81ff1bb5d568333930d5b20 files/digest-gst-plugins-ffmpeg-0.8.7-r1 70
+MD5 622065818c9e4ae7054c4230d3205d5f files/ffmpeg_dos.patch 3467
MD5 46751c3c4ae072d530592ef91852936f files/gst-ffmpeg-gcc4.patch.gz 1367
-MD5 4e1e8378e4303b131780f2b9263a6810 files/digest-gst-plugins-ffmpeg-0.10.0 71
-MD5 2963f26bd29fbec176f2e0fb08213e75 files/gst-plugins-ffmpeg-0.8.5-gmake.patch 322
MD5 17bff3394f5317a370ff75f983c76d16 files/gst-plugins-ffmpeg-0.8.4-eoshangfix.patch 905
+MD5 2963f26bd29fbec176f2e0fb08213e75 files/gst-plugins-ffmpeg-0.8.5-gmake.patch 322
+MD5 d2e27f9051f7baa7930d4373daca6519 gst-plugins-ffmpeg-0.10.0-r1.ebuild 1298
+MD5 bd9a573e4c8653240c98a7b3cb718210 gst-plugins-ffmpeg-0.10.0.ebuild 1261
+MD5 054ebc6de6df9d72f7c22f5352aedddc gst-plugins-ffmpeg-0.8.4-r1.ebuild 1681
+MD5 e71143901d9b301f20a71ae2667d5d12 gst-plugins-ffmpeg-0.8.4.ebuild 1487
+MD5 d3fd16950041773cb07e314b73140b31 gst-plugins-ffmpeg-0.8.5.ebuild 1618
+MD5 7251fdac77e8a3ab01f83718c6074cfe gst-plugins-ffmpeg-0.8.6.ebuild 1663
+MD5 6ea38b7867adb07b61140735d3368578 gst-plugins-ffmpeg-0.8.7-r1.ebuild 1588
+MD5 b2ee7964fb68b8d1930e482f1ebc9731 gst-plugins-ffmpeg-0.8.7.ebuild 1551
+MD5 6cf6f97e79b43eaf70fa938c431342a3 metadata.xml 181
diff --git a/media-plugins/gst-plugins-ffmpeg/files/digest-gst-plugins-ffmpeg-0.10.0-r1 b/media-plugins/gst-plugins-ffmpeg/files/digest-gst-plugins-ffmpeg-0.10.0-r1
new file mode 100644
index 000000000000..d9c6e0974928
--- /dev/null
+++ b/media-plugins/gst-plugins-ffmpeg/files/digest-gst-plugins-ffmpeg-0.10.0-r1
@@ -0,0 +1 @@
+MD5 53625b1b21203ff99f115c8ecb0718cd gst-ffmpeg-0.10.0.tar.bz2 2027178
diff --git a/media-plugins/gst-plugins-ffmpeg/files/digest-gst-plugins-ffmpeg-0.8.7-r1 b/media-plugins/gst-plugins-ffmpeg/files/digest-gst-plugins-ffmpeg-0.8.7-r1
new file mode 100644
index 000000000000..9eb2b2619ef9
--- /dev/null
+++ b/media-plugins/gst-plugins-ffmpeg/files/digest-gst-plugins-ffmpeg-0.8.7-r1
@@ -0,0 +1 @@
+MD5 6435ef3954ee05de79829e262f86187a gst-ffmpeg-0.8.7.tar.bz2 2110685
diff --git a/media-plugins/gst-plugins-ffmpeg/files/ffmpeg_dos.patch b/media-plugins/gst-plugins-ffmpeg/files/ffmpeg_dos.patch
new file mode 100644
index 000000000000..3425c1f5be83
--- /dev/null
+++ b/media-plugins/gst-plugins-ffmpeg/files/ffmpeg_dos.patch
@@ -0,0 +1,88 @@
+Index: libavcodec/utils.c
+===================================================================
+RCS file: /cvsroot/ffmpeg/ffmpeg/libavcodec/utils.c,v
+retrieving revision 1.161
+retrieving revision 1.162
+diff -u -r1.161 -r1.162
+--- gst-libs/ext/ffmpeg/libavcodec/utils.c 2 Nov 2005 09:18:32 -0000 1.161
++++ gst-libs/ext/ffmpeg/libavcodec/utils.c 2 Dec 2005 00:12:37 -0000 1.162
+@@ -292,27 +292,10 @@
+ buf->last_pic_num= *picture_number;
+ }else{
+ int h_chroma_shift, v_chroma_shift;
+- int pixel_size;
+-
++ int pixel_size, size[3];
++ AVPicture picture;
++
+ avcodec_get_chroma_sub_sample(s->pix_fmt, &h_chroma_shift, &v_chroma_shift);
+-
+- switch(s->pix_fmt){
+- case PIX_FMT_RGB555:
+- case PIX_FMT_RGB565:
+- case PIX_FMT_YUV422:
+- case PIX_FMT_UYVY422:
+- pixel_size=2;
+- break;
+- case PIX_FMT_RGB24:
+- case PIX_FMT_BGR24:
+- pixel_size=3;
+- break;
+- case PIX_FMT_RGBA32:
+- pixel_size=4;
+- break;
+- default:
+- pixel_size=1;
+- }
+
+ avcodec_align_dimensions(s, &w, &h);
+
+@@ -320,21 +303,39 @@
+ w+= EDGE_WIDTH*2;
+ h+= EDGE_WIDTH*2;
+ }
+-
++ avpicture_fill(&picture, NULL, s->pix_fmt, w, h);
++ pixel_size= picture.linesize[0]*8 / w;
++//av_log(NULL, AV_LOG_ERROR, "%d %d %d %d\n", (int)picture.data[1], w, h, s->pix_fmt);
++ assert(pixel_size>=1);
++ //FIXME next ensures that linesize= 2^x uvlinesize, thats needed because some MC code assumes it
++ if(pixel_size == 3*8)
++ w= ALIGN(w, STRIDE_ALIGN<<h_chroma_shift);
++ else
++ w= ALIGN(pixel_size*w, STRIDE_ALIGN<<(h_chroma_shift+3)) / pixel_size;
++ size[1] = avpicture_fill(&picture, NULL, s->pix_fmt, w, h);
++ size[0] = picture.linesize[0] * h;
++ size[1] -= size[0];
++ if(picture.data[2])
++ size[1]= size[2]= size[1]/2;
++ else
++ size[2]= 0;
++
+ buf->last_pic_num= -256*256*256*64;
++ memset(buf->base, 0, sizeof(buf->base));
++ memset(buf->data, 0, sizeof(buf->data));
+
+- for(i=0; i<3; i++){
++ for(i=0; i<3 && size[i]; i++){
+ const int h_shift= i==0 ? 0 : h_chroma_shift;
+ const int v_shift= i==0 ? 0 : v_chroma_shift;
+
+- //FIXME next ensures that linesize= 2^x uvlinesize, thats needed because some MC code assumes it
+- buf->linesize[i]= ALIGN(pixel_size*w>>h_shift, STRIDE_ALIGN<<(h_chroma_shift-h_shift));
++ buf->linesize[i]= picture.linesize[i];
+
+- buf->base[i]= av_malloc((buf->linesize[i]*h>>v_shift)+16); //FIXME 16
++ buf->base[i]= av_malloc(size[i]+16); //FIXME 16
+ if(buf->base[i]==NULL) return -1;
+- memset(buf->base[i], 128, buf->linesize[i]*h>>v_shift);
+-
+- if(s->flags&CODEC_FLAG_EMU_EDGE)
++ memset(buf->base[i], 128, size[i]);
++
++ // no edge if EDEG EMU or not planar YUV, we check for PAL8 redundantly to protect against a exploitable bug regression ...
++ if((s->flags&CODEC_FLAG_EMU_EDGE) || (s->pix_fmt == PIX_FMT_PAL8) || !size[2])
+ buf->data[i] = buf->base[i];
+ else
+ buf->data[i] = buf->base[i] + ALIGN((buf->linesize[i]*EDGE_WIDTH>>v_shift) + (EDGE_WIDTH>>h_shift), STRIDE_ALIGN);
+
diff --git a/media-plugins/gst-plugins-ffmpeg/gst-plugins-ffmpeg-0.10.0-r1.ebuild b/media-plugins/gst-plugins-ffmpeg/gst-plugins-ffmpeg-0.10.0-r1.ebuild
new file mode 100644
index 000000000000..9fb1a884c148
--- /dev/null
+++ b/media-plugins/gst-plugins-ffmpeg/gst-plugins-ffmpeg-0.10.0-r1.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-plugins/gst-plugins-ffmpeg/gst-plugins-ffmpeg-0.10.0-r1.ebuild,v 1.1 2006/01/18 20:45:28 joem Exp $
+
+inherit flag-o-matic eutils
+
+MY_PN=${PN/-plugins/}
+MY_P=${MY_PN}-${PV}
+
+# Create a major/minor combo for SLOT
+PVP=(${PV//[-\._]/ })
+SLOT=${PVP[0]}.${PVP[1]}
+#SLOT=0.10
+
+DESCRIPTION="FFmpeg based gstreamer plugin"
+HOMEPAGE="http://gstreamer.freedesktop.org/modules/gst-ffmpeg.html"
+SRC_URI="http://gstreamer.freedesktop.org/src/${MY_PN}/${MY_P}.tar.bz2"
+
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+S=${WORKDIR}/${MY_P}
+
+DEPEND=">=media-libs/gstreamer-0.10.0
+ dev-util/pkgconfig"
+
+src_compile() {
+
+ # Restrictions taken from the mplayer ebuild
+ # See bug #64262 for more info
+ # let's play the filtration game!
+ filter-flags -fPIE -fPIC -fstack-protector -fforce-addr -momit-leaf-frame-pointer -msse2 -msse3 -falign-functions -fweb
+ # ugly optimizations cause MPlayer to cry on x86 systems!
+ if use x86 ; then
+ replace-flags -O0 -O2
+ replace-flags -O3 -O2
+ fi
+
+ epatch ${FILESDIR}/ffmpeg_dos.patch
+ econf || die
+ emake || die
+
+}
+
+src_install() {
+
+ make DESTDIR=${D} install || die
+
+ dodoc AUTHORS COPYING ChangeLog INSTALL NEWS README TODO
+
+}
+
diff --git a/media-plugins/gst-plugins-ffmpeg/gst-plugins-ffmpeg-0.8.7-r1.ebuild b/media-plugins/gst-plugins-ffmpeg/gst-plugins-ffmpeg-0.8.7-r1.ebuild
new file mode 100644
index 000000000000..0ba9abd7568e
--- /dev/null
+++ b/media-plugins/gst-plugins-ffmpeg/gst-plugins-ffmpeg-0.8.7-r1.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-plugins/gst-plugins-ffmpeg/gst-plugins-ffmpeg-0.8.7-r1.ebuild,v 1.1 2006/01/18 20:45:28 joem Exp $
+
+inherit flag-o-matic eutils
+
+MY_PN=${PN/-plugins/}
+MY_P=${MY_PN}-${PV}
+
+# Create a major/minor combo for SLOT
+PVP=(${PV//[-\._]/ })
+SLOT=${PVP[0]}.${PVP[1]}
+
+DESCRIPTION="FFmpeg based gstreamer plugin"
+HOMEPAGE="http://gstreamer.freedesktop.org/modules/gst-ffmpeg.html"
+SRC_URI="http://gstreamer.freedesktop.org/src/${MY_PN}/${MY_P}.tar.bz2"
+
+LICENSE="GPL-2"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~hppa"
+IUSE=""
+
+S=${WORKDIR}/${MY_P}
+
+DEPEND="|| ( =media-libs/gstreamer-0.8.10 =media-libs/gstreamer-0.8.11 )
+ dev-util/pkgconfig"
+
+src_compile() {
+
+ # Restrictions taken from the mplayer ebuild
+ # See bug #64262 for more info
+ # let's play the filtration game!
+ filter-flags -fPIE -fPIC -fstack-protector -fforce-addr -momit-leaf-frame-pointer -msse2 -msse3 -falign-functions -fweb
+ # ugly optimizations cause MPlayer to cry on x86 systems!
+ if use x86 ; then
+ replace-flags -O0 -O2
+ replace-flags -O3 -O2
+ fi
+
+ epatch ${FILESDIR}/ffmpeg_dos.patch
+ econf || die
+ emake || die
+
+}
+
+src_install() {
+
+ make DESTDIR=${D} install || die
+
+ dodoc AUTHORS COPYING ChangeLog INSTALL NEWS README TODO
+
+}
+
+# ripped from the gst-plugins eclass
+update_registry() {
+
+ einfo "Updating gstreamer plugins registry for gstreamer ${SLOT}..."
+ gst-register-${SLOT}
+
+}
+
+pkg_postinst() {
+
+ update_registry
+
+}
+
+pkg_postrm() {
+
+ update_registry
+
+}