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
