Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=frugalware-current.git;a=commitdiff;h=53e0250edd809eb9de5ca945380760366322e97d

commit 53e0250edd809eb9de5ca945380760366322e97d
Author: crazy <[EMAIL PROTECTED]>
Date:   Wed Mar 26 22:41:09 2008 +0100

vlc-0.8.6-13-i686
* release bump
* added an patch to fix cinepak mem corruption
* added an patch to fix the build with libebml>=0.7.8

diff --git a/source/xmultimedia-extra/vlc/FrugalBuild 
b/source/xmultimedia-extra/vlc/FrugalBuild
index 98e65c8..02038d8 100644
--- a/source/xmultimedia-extra/vlc/FrugalBuild
+++ b/source/xmultimedia-extra/vlc/FrugalBuild
@@ -5,13 +5,13 @@
pkgname=vlc
pkgver=0.8.6
pkgextraver=e
-pkgrel=12
+pkgrel=13
pkgdesc="The cross-platform media player and streaming server."
url="http://www.videolan.org/vlc/";
depends=('alsa-lib' 'dbus-glib>=0.71' 'hal>=0.5.7.1-3' 'libxml2' 'libdvdnav' 
'libmad' 'libmatroska' \
'mpeg2dec' 'ffmpeg>=20070422' 'fribidi' 'wxgtk-u8>=2.8.7' 'live' 'speex' 
'libdca' \
'sysfsutils' 'mesa' 'libdvbpsi' 'libxv' 'sdlimage' 'libcdio' \
-        'libid3tag' 'libtheora' 'faad2' 'xvidcore' 'libtheora')
+        'libid3tag' 'libtheora' 'faad2' 'xvidcore' 'libtheora' 
'libebml>=0.7.8')
## WARNING: do NOT add any VCD option to build its kill off the GUI
makedepends=('firefox' 'samba' 'cvs')
options=('scriptlet')
@@ -19,13 +19,17 @@ groups=('xmultimedia-extra')
archs=('i686' 'x86_64')
up2date="lynx -dump $url/download-sources.html|grep -m1 'Latest VLC'|sed 
's/.*(\(.*\)).*/\1/;s/$pkgextraver//'"
source=(http://download.videolan.org/pub/videolan/vlc/$pkgver$pkgextraver/$pkgname-$pkgver$pkgextraver.tar.bz2
 \
-       $pkgname-ffmpeg.diff $pkgname.desktop vlc-0.8.5-libintl.diff 
libdca.patch CVE-2008-1489.patch)
+       $pkgname-ffmpeg.diff $pkgname.desktop vlc-0.8.5-libintl.diff \
+       libdca.patch CVE-2008-1489.patch cinepak-mem-corruption-fixes.patch \
+       libebml-0.7.8.patch)
sha1sums=('6b981ddbe7f6b95cd566ee195b4445b5773c21bd' \
'888a02c9f81331fce1f6ee5f705ce68e5b486ffd' \
'0c58c35fe47c4d14cd4d4c8c505863dbfc93f5e0' \
'50bfbc12fc0ad94178b2e08df22a0b26da36c1d5' \
'edc3a14dfd9b022dca7593e006c324fa5cc17e48' \
-          '3e794876f5e5a50d4eb8cb3ae1382524a60b37c4')
+          '3e794876f5e5a50d4eb8cb3ae1382524a60b37c4' \
+          '5cd2b133b73a44beb34600e48573c3f717bd4545' \
+          '3808656c17b47091498e60936101fbea0c66ae7c')

build()
{
diff --git a/source/xmultimedia-extra/vlc/cinepak-mem-corruption-fixes.patch 
b/source/xmultimedia-extra/vlc/cinepak-mem-corruption-fixes.patch
new file mode 100644
index 0000000..72b8cda
--- /dev/null
+++ b/source/xmultimedia-extra/vlc/cinepak-mem-corruption-fixes.patch
@@ -0,0 +1,85 @@
+Index: modules/codec/cinepak.c
+===================================================================
+--- modules/codec/cinepak.c (revision 9cc8c304bc575fe984eaa711f6ac4ad58ca4a351)
++++ modules/codec/cinepak.c (revision cf489d7bff3c1b36b2d5501ecf21129c78104d98)
+@@ -60,6 +60,6 @@
+     int b_grayscale; /* force to grayscale */
+
+-    int i_width;
+-    int i_height;
++    unsigned int i_width;
++    unsigned int i_height;
+
+     int i_stride_x;
+@@ -90,5 +90,5 @@
+ static picture_t *DecodeBlock ( decoder_t *, block_t ** );
+
+-static int cinepak_decode_frame( cinepak_context_t *, int, uint8_t * );
++static int cinepak_decode_frame( cinepak_context_t *, size_t, uint8_t * );
+
+ /*****************************************************************************
+@@ -283,4 +283,14 @@
+     int i,j;
+
++    size_t y_max = p_context->i_stride[0] * ( i_y + 5 ) + i_x + 5;
++    size_t u_max = p_context->i_stride[1] * ( ( i_y/2 ) + 2 ) + 2 + ( i_x / 2 
);
++    size_t v_max = p_context->i_stride[2] * ( ( i_y/2 ) + 2 ) + 2 + ( i_x / 2 
);
++    size_t y_siz = p_context->i_stride[0] * p_context->i_lines[0];
++    size_t u_siz = p_context->i_stride[1] * p_context->i_lines[1];
++    size_t v_siz = p_context->i_stride[2] * p_context->i_lines[2];
++    /* boundary check */
++    if( y_max >= y_siz || u_max >= u_siz || v_max >= v_siz )
++        return;
++
+     uint8_t *p_dst_y, *p_dst_u, *p_dst_v;
+ #define PIX_SET_Y( x, y, v ) \
+@@ -330,4 +340,14 @@
+     int i,j;
+
++    size_t y_max = p_context->i_stride[0] * ( i_y + 5 ) + i_x + 5;
++    size_t u_max = p_context->i_stride[1] * ( ( i_y/2 ) + 2 ) + 2 + ( i_x / 2 
);
++    size_t v_max = p_context->i_stride[2] * ( ( i_y/2 ) + 2 ) + 2 + ( i_x / 2 
);
++    size_t y_siz = p_context->i_stride[0] * p_context->i_lines[0];
++    size_t u_siz = p_context->i_stride[1] * p_context->i_lines[1];
++    size_t v_siz = p_context->i_stride[2] * p_context->i_lines[2];
++    /* boundary check */
++    if( y_max >= y_siz || u_max >= u_siz || v_max >= v_siz )
++        return;
++
+     uint8_t *p_dst_y, *p_dst_u, *p_dst_v;
+ #define PIX_SET_Y( x, y, v ) \
+@@ -372,12 +392,12 @@
+  
*****************************************************************************/
+ static int cinepak_decode_frame( cinepak_context_t *p_context,
+-                                 int i_length, uint8_t *p_data )
++                                 size_t i_length, uint8_t *p_data )
+ {
+     int i_strip;
+
+-    int i_frame_flags;
+-    int i_frame_size;
+-    int i_width, i_height;
+-    int i_frame_strips;
++    int8_t i_frame_flags;
++    uint32_t i_frame_size;
++    uint16_t i_width, i_height;
++    uint16_t i_frame_strips;
+     int i_index;
+     int i_strip_x1 =0, i_strip_y1=0;
+@@ -449,6 +469,5 @@
+     for( i_strip = 0; i_strip < i_frame_strips; i_strip++ )
+     {
+-        int i_strip_id;
+-        int i_strip_size;
++        uint16_t i_strip_size;
+
+         if( i_length <= 12 )
+@@ -457,5 +476,6 @@
+         }
+
+-        i_strip_id   = GET2BYTES( p_data );
++        p_data += 2; /* int16_t i_strip_id   = GET2BYTES( p_data ); */
++
+         i_strip_size = GET2BYTES( p_data );
+         i_strip_size = __MIN( i_strip_size, i_length );
+
diff --git a/source/xmultimedia-extra/vlc/libebml-0.7.8.patch 
b/source/xmultimedia-extra/vlc/libebml-0.7.8.patch
new file mode 100644
index 0000000..628c28d
--- /dev/null
+++ b/source/xmultimedia-extra/vlc/libebml-0.7.8.patch
@@ -0,0 +1,21 @@
+diff -Naur vlc-0.8.6e/modules/demux/mkv.cpp vlc-0.8.6e-p/modules/demux/mkv.cpp
+--- vlc-0.8.6e/modules/demux/mkv.cpp   2008-02-24 20:01:53.000000000 +0100
++++ vlc-0.8.6e-p/modules/demux/mkv.cpp 2008-03-26 22:22:08.000000000 +0100
+@@ -5845,7 +5845,7 @@
+             binary *p_data = (*index)->GetBuffer();
+             size_t i_size = *p_data++;
+             // avoid reading too much from the buffer
+-            i_size = min( i_size, ((*index)->GetSize() - 1) >> 3 );
++            i_size = __MIN( i_size, ((*index)->GetSize() - 1) >> 3 );
+             for ( ; i_size > 0; i_size--, p_data += 8 )
+             {
+                 msg_Dbg( &sys.demuxer, "Matroska DVD enter command" );
+@@ -5868,7 +5868,7 @@
+             binary *p_data = (*index)->GetBuffer();
+             size_t i_size = *p_data++;
+             // avoid reading too much from the buffer
+-            i_size = min( i_size, ((*index)->GetSize() - 1) >> 3 );
++            i_size = __MIN( i_size, ((*index)->GetSize() - 1) >> 3 );
+             for ( ; i_size > 0; i_size--, p_data += 8 )
+             {
+                 msg_Dbg( &sys.demuxer, "Matroska DVD leave command" );
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to