Date: Wednesday, August 10, 2011 @ 05:35:11 Author: jgc Revision: 135097
upgpkg: gstreamer0.10-base 0.10.35-1 Update to 0.10.35, add two patches to fix segfaults on 0-byte ogg/vorbis packets (FS#25416) Added: gstreamer0.10-base/trunk/oggstream-fix-crashes-with-0-byte-vorbis-packets.patch gstreamer0.10-base/trunk/theoradec-segfault-on-0-byte-ogg_packet-in-_chain_reverse.patch Modified: gstreamer0.10-base/trunk/PKGBUILD -----------------------------------------------------------------+ PKGBUILD | 18 +++++--- oggstream-fix-crashes-with-0-byte-vorbis-packets.patch | 22 ++++++++++ theoradec-segfault-on-0-byte-ogg_packet-in-_chain_reverse.patch | 21 +++++++++ 3 files changed, 56 insertions(+), 5 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2011-08-10 09:25:04 UTC (rev 135096) +++ PKGBUILD 2011-08-10 09:35:11 UTC (rev 135097) @@ -3,18 +3,26 @@ pkgbase=('gstreamer0.10-base') pkgname=('gstreamer0.10-base' 'gstreamer0.10-base-plugins') -pkgver=0.10.34 +pkgver=0.10.35 pkgrel=1 arch=('i686' 'x86_64') license=('LGPL') -makedepends=('pkgconfig' 'gstreamer0.10>=0.10.34' 'orc' 'libxv' 'alsa-lib' 'cdparanoia' 'libvisual' 'libvorbis' 'libtheora' 'pango' 'gobject-introspection') +makedepends=('pkgconfig' 'gstreamer0.10>=0.10.35' 'orc' 'libxv' 'alsa-lib' 'cdparanoia' 'libvisual' 'libvorbis' 'libtheora' 'pango' 'gobject-introspection') options=(!libtool !emptydirs) url="http://gstreamer.freedesktop.org/" -source=(${url}/src/gst-plugins-base/gst-plugins-base-${pkgver}.tar.bz2) -sha256sums=('7f347a60cd4317c7ea44c23e52d6e6233d2fa278b3fe3df7cbefe2bc2e253989') +source=(${url}/src/gst-plugins-base/gst-plugins-base-${pkgver}.tar.bz2 + oggstream-fix-crashes-with-0-byte-vorbis-packets.patch + theoradec-segfault-on-0-byte-ogg_packet-in-_chain_reverse.patch) +sha256sums=('cd24f01bb5258a1f400bc4f2c212bb7cee9ee23c9ffb80d537a24ef366d17103' + '2e9d001dbe0ed598c8e86b0081c6ecdf28a1a6b45ffafc639f5cf52fdf0d467f' + '8da16aed8c098251903208cc7ac233b7a9df3f024f78c6970e71f3c2e2bdaa17') build() { cd "${srcdir}/gst-plugins-base-${pkgver}" + + patch -Np1 -i "${srcdir}/oggstream-fix-crashes-with-0-byte-vorbis-packets.patch" + patch -Np1 -i "${srcdir}/theoradec-segfault-on-0-byte-ogg_packet-in-_chain_reverse.patch" + sed -i '/AC_PATH_XTRA/d' configure.ac autoreconf ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ @@ -28,7 +36,7 @@ package_gstreamer0.10-base() { pkgdesc="GStreamer Multimedia Framework Base plugin libraries" - depends=('gstreamer0.10>=0.10.34' 'orc' 'libxv') + depends=('gstreamer0.10>=0.10.35' 'orc' 'libxv') cd "${srcdir}/gst-plugins-base-${pkgver}" make DESTDIR="${pkgdir}" install Added: oggstream-fix-crashes-with-0-byte-vorbis-packets.patch =================================================================== --- oggstream-fix-crashes-with-0-byte-vorbis-packets.patch (rev 0) +++ oggstream-fix-crashes-with-0-byte-vorbis-packets.patch 2011-08-10 09:35:11 UTC (rev 135097) @@ -0,0 +1,22 @@ +From 8bd3bdaf3768b3fb6adc85b3bc681fdce07b786e Mon Sep 17 00:00:00 2001 +From: Jonathan Liu <net...@gmail.com> +Date: Wed, 03 Aug 2011 08:18:29 +0000 +Subject: oggstream: Fix crashes with 0-byte vorbis packets + +Fixes bug #655574. +--- +diff --git a/ext/ogg/gstoggstream.c b/ext/ogg/gstoggstream.c +index e843f48..77f39d4 100644 +--- a/ext/ogg/gstoggstream.c ++++ b/ext/ogg/gstoggstream.c +@@ -792,7 +792,7 @@ packet_duration_vorbis (GstOggStream * pad, ogg_packet * packet) + int size; + int duration; + +- if (packet->packet[0] & 1) ++ if (packet->bytes == 0 || packet->packet[0] & 1) + return 0; + + mode = (packet->packet[0] >> 1) & ((1 << pad->vorbis_log2_num_modes) - 1); +-- +cgit v0.8.3-6-g21f6 Added: theoradec-segfault-on-0-byte-ogg_packet-in-_chain_reverse.patch =================================================================== --- theoradec-segfault-on-0-byte-ogg_packet-in-_chain_reverse.patch (rev 0) +++ theoradec-segfault-on-0-byte-ogg_packet-in-_chain_reverse.patch 2011-08-10 09:35:11 UTC (rev 135097) @@ -0,0 +1,21 @@ +From 7d22d91fca6b9f24ca205eef98031f1ed6a44d33 Mon Sep 17 00:00:00 2001 +From: Philip Jägenstedt <phil...@opera.com> +Date: Tue, 26 Jul 2011 14:10:17 +0000 +Subject: theoradec: segfault on 0-byte ogg_packet in _chain_reverse + +--- +diff --git a/ext/theora/gsttheoradec.c b/ext/theora/gsttheoradec.c +index 96e12ee..25d68db 100644 +--- a/ext/theora/gsttheoradec.c ++++ b/ext/theora/gsttheoradec.c +@@ -1440,7 +1440,7 @@ theora_dec_chain_reverse (GstTheoraDec * dec, gboolean discont, GstBuffer * buf) + + /* if we copied a keyframe, flush and decode the decode queue */ + data = GST_BUFFER_DATA (gbuf); +- if ((data[0] & 0x40) == 0) { ++ if (data && (data[0] & 0x40) == 0) { + GST_DEBUG_OBJECT (dec, "copied keyframe"); + res = theora_dec_flush_decode (dec); + } +-- +cgit v0.8.3-6-g21f6