[arch-commits] Commit in mplayer/trunk (PKGBUILD subreader-fix-srt-parsing.patch)

Evangelos Foutras foutrelis at nymeria.archlinux.org
Sun May 26 10:14:39 UTC 2013


    Date: Sunday, May 26, 2013 @ 12:14:39
  Author: foutrelis
Revision: 186432

upgpkg: mplayer 36285-1

New snapshot.

Modified:
  mplayer/trunk/PKGBUILD
Deleted:
  mplayer/trunk/subreader-fix-srt-parsing.patch

---------------------------------+
 PKGBUILD                        |   28 ++++++++---------
 subreader-fix-srt-parsing.patch |   60 --------------------------------------
 2 files changed, 13 insertions(+), 75 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2013-05-26 09:26:17 UTC (rev 186431)
+++ PKGBUILD	2013-05-26 10:14:39 UTC (rev 186432)
@@ -4,32 +4,30 @@
 
 pkgbase=mplayer
 pkgname=('mplayer' 'mencoder')
-pkgver=35920
-pkgrel=3
+pkgver=36285
+pkgrel=1
 arch=('i686' 'x86_64')
 makedepends=('libxxf86dga' 'libxxf86vm' 'libmad' 'libxinerama' 'sdl' 'lame' 'libtheora' 'xvidcore' 'libmng' 'libxss' 'libgl' 'smbclient'
 'aalib' 'jack' 'libcaca' 'x264' 'faac' 'faad2' 'lirc-utils'  'libxvmc' 'enca' 'libvdpau' 'opencore-amr' 'libdca' 'a52dec' 'schroedinger' 'libvpx'
 'libpulse' 'fribidi' 'unzip' 'mesa' 'live-media' 'yasm' 'git' 'fontconfig' 'mpg123' 'ladspa' 'libass' 'libbluray' 'libcdio-paranoia' 'subversion')
 license=('GPL')
 url="http://www.mplayerhq.hu/"
-options=(!buildflags !emptydirs)
-source=(ftp://ftp.archlinux.org/other/packages/$pkgbase/$pkgbase-$pkgver.tar.xz mplayer.desktop cdio-includes.patch subreader-fix-srt-parsing.patch)
-md5sums=('5f96e829d711e7d1ea65e324710dca50'
+options=('!buildflags' '!emptydirs')
+source=(ftp://ftp.archlinux.org/other/packages/$pkgbase/$pkgbase-$pkgver.tar.xz
+        mplayer.desktop
+        cdio-includes.patch)
+md5sums=('5e4f0d4d039b0219514cf52ae6da831d'
          'c0d6ef795cf6de48e3b87ff7c23f0319'
-         '7b5be7191aafbea64218dc4916343bbc'
-         '7cb6019018a95dcc3d1231e1aaa8bbdb')
+         '7b5be7191aafbea64218dc4916343bbc')
 
 prepare() {
-    cd "$srcdir/$pkgbase"
+    cd "$srcdir/$pkgbase-$pkgver"
 
     patch -Np0 -i ../cdio-includes.patch
-
-    # http://bugzilla.mplayerhq.hu/show_bug.cgi?id=2139
-    patch -Np1 -i ../subreader-fix-srt-parsing.patch
 }
 
 build() {
-    cd "$srcdir/$pkgbase"
+    cd "$srcdir/$pkgbase-$pkgver"
 
     ./configure --prefix=/usr \
         --enable-runtime-cpudetection \
@@ -62,7 +60,7 @@
     'libxinerama' 'libvdpau' 'libpulse' 'smbclient' 'xvidcore' 'opencore-amr' 'jack' 'libmad' 'sdl' 'libtheora' 'libcaca' 'libxxf86dga' 'fribidi'
     'libjpeg' 'faac' 'faad2' 'libxvmc' 'schroedinger' 'mpg123' 'libass' 'libxxf86vm' 'libbluray' 'libcdio-paranoia')
 
-    cd "$srcdir/$pkgbase"
+    cd "$srcdir/$pkgbase-$pkgver"
 
     make DESTDIR="$pkgdir" install-mplayer install-mplayer-man
     install -Dm644 etc/{codecs.conf,input.conf,example.conf} "$pkgdir/etc/mplayer/"
@@ -79,7 +77,7 @@
     depends=('enca' 'a52dec' 'libvpx' 'x264' 'libmng' 'libdca' 'bzip2' 'lame' 'alsa-lib' 'fontconfig' 'giflib' 'libpng' 'smbclient' 'xvidcore' 'opencore-amr'
     'libmad' 'libtheora' 'fribidi' 'libjpeg' 'faac' 'faad2' 'schroedinger' 'mpg123' 'libass' 'libbluray' 'libcdio-paranoia' 'libvorbis')
 
-    cd "$srcdir/$pkgbase"
+    cd "$srcdir/$pkgbase-$pkgver"
     make DESTDIR="$pkgdir" install-mencoder install-mencoder-man
-    find "$pkgdir/usr/share/man" -name 'mplayer.1' -exec bash -c 'mv "$1" "${1/mplayer/mencoder}"' _ {} \;
+    find "$pkgdir/usr/share/man" -name mplayer.1 -exec rename mplayer.1 mencoder.1 {} +
 }

Deleted: subreader-fix-srt-parsing.patch
===================================================================
--- subreader-fix-srt-parsing.patch	2013-05-26 09:26:17 UTC (rev 186431)
+++ subreader-fix-srt-parsing.patch	2013-05-26 10:14:39 UTC (rev 186432)
@@ -1,60 +0,0 @@
-From d98e61ea438db66323734ad1b6bea66411a3c97b Mon Sep 17 00:00:00 2001
-From: wm4 <wm4 at nowhere>
-Date: Tue, 30 Apr 2013 00:09:31 +0200
-Subject: [PATCH] subreader: fix out of bound write access when parsing .srt
-
-This broke .srt subtitles on gcc-4.8. The breakage was relatively
-subtle: it set all hour components to 0, while everything else was
-parsed successfully.
-
-But the problem is really that sscanf wrote 1 byte past the sep
-variable (or more, for invalid/specially prepared input). The %[..]
-format specifier is unbounded. Fix that by letting sscanf drop the
-parsed contents with "*", and also make it skip only one input
-character by adding "1" (=> "%*1[...").
-
-The out of bound write could easily lead to security issues.
-
-Also, this change makes .srt subtitle parsing slightly more strict.
-Strictly speaking this is an unrelated change, but do it anyway. It's
-more correct.
----
- sub/subreader.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
- (foutrelis: adjusted variable names in first hunk to apply to mplayer)
-
-diff --git a/sub/subreader.c b/sub/subreader.c
-index 23da4c7..0f1b6c9 100644
---- a/sub/subreader.c
-+++ b/sub/subreader.c
-@@ -386,14 +386,14 @@ static subtitle *sub_ass_read_line_subviewer(stream_t *st, subtitle *current,
-     int h1, m1, s1, ms1, h2, m2, s2, ms2, j = 0;
- 
-     while (!current->text[0]) {
--        char line[LINE_LEN + 1], full_line[LINE_LEN + 1], sep;
-+        char line[LINE_LEN + 1], full_line[LINE_LEN + 1];
-         int i;
- 
-         /* Parse SubRip header */
-         if (!stream_read_line(st, line, LINE_LEN, utf16))
-             return NULL;
--        if (sscanf(line, "%d:%d:%d%[,.:]%d --> %d:%d:%d%[,.:]%d",
--                     &h1, &m1, &s1, &sep, &ms1, &h2, &m2, &s2, &sep, &ms2) < 10)
-+        if (sscanf(line, "%d:%d:%d%*1[,.:]%d --> %d:%d:%d%*1[,.:]%d",
-+                     &h1, &m1, &s1, &ms1, &h2, &m2, &s2, &ms2) < 8)
-             continue;
- 
-         current->start = a1 * 360000 + a2 * 6000 + a3 * 100 + a4 / 10;
-@@ -450,7 +450,7 @@ static subtitle *sub_read_line_subviewer(stream_t *st,subtitle *current,
-         return sub_ass_read_line_subviewer(st, current, args);
-     while (!current->text[0]) {
- 	if (!stream_read_line (st, line, LINE_LEN, utf16)) return NULL;
--	if ((len=sscanf (line, "%d:%d:%d%[,.:]%d --> %d:%d:%d%[,.:]%d",&a1,&a2,&a3,(char *)&i,&a4,&b1,&b2,&b3,(char *)&i,&b4)) < 10)
-+	if ((len=sscanf (line, "%d:%d:%d%*1[,.:]%d --> %d:%d:%d%*1[,.:]%d",&a1,&a2,&a3,&a4,&b1,&b2,&b3,&b4)) < 8)
- 	    continue;
- 	current->start = a1*360000+a2*6000+a3*100+a4/10;
- 	current->end   = b1*360000+b2*6000+b3*100+b4/10;
--- 
-1.8.1.6
-




More information about the arch-commits mailing list