[SCM] VLC media player packaging branch, lenny, updated. debian/0.8.6.h-4+lenny2-4-g7c3b15a
xtophe-guest at users.alioth.debian.org
xtophe-guest at users.alioth.debian.org
Sun Oct 4 00:49:57 UTC 2009
The following commit has been merged in the lenny branch:
commit f98371578aa22e4f4d99720d3323d2075cdfa7ce
Author: Christophe Mutricy <xtophe at videolan.org>
Date: Sun Oct 4 00:22:01 2009 +0000
Fix overflow in mp4, avi and asf
diff --git a/debian/patches/411-VideoLAN-SA-0901.diff b/debian/patches/411-VideoLAN-SA-0901.diff
new file mode 100644
index 0000000..9d0b24c
--- /dev/null
+++ b/debian/patches/411-VideoLAN-SA-0901.diff
@@ -0,0 +1,136 @@
+commit c5b02d011b8c634d041167f4d2936b55eca4d18d
+Author: Laurent Aimar <fenrir at videolan.org>
+Date: Tue Sep 15 21:03:42 2009 +0200
+
+ Fixed potential stack overflow in mp4 demuxer.
+
+ Reported by Sebastian Apelt, Siberas.
+
+commit 861e374d03e6c60c7d3c98428c632fe3b9e371b2
+Author: Laurent Aimar <fenrir at videolan.org>
+Date: Tue Sep 15 21:02:40 2009 +0200
+
+ Fixed potential stack overflow in avi demuxer.
+
+ Reported by Sebastian Apelt, Siberas.
+
+commit dfe7084e8cc64e9b7a87cd37065b59cba2064823
+Author: Laurent Aimar <fenrir at videolan.org>
+Date: Tue Sep 15 21:00:14 2009 +0200
+
+ Fixed potential stack overflow in asf demuxer.
+
+ Reported by Sebastian Apelt, Siberas.
+diff --git a/modules/demux/asf/libasf.c b/modules/demux/asf/libasf.c
+index 4f26a31..ee50cd2 100644
+--- a/modules/demux/asf/libasf.c
++++ b/modules/demux/asf/libasf.c
+@@ -1415,10 +1415,9 @@ static const struct
+
+
+ static void ASF_ObjectDumpDebug( vlc_object_t *p_obj,
+- asf_object_common_t *p_node, int i_level )
++ asf_object_common_t *p_node, unsigned i_level )
+ {
+- char str[1024];
+- int i;
++ unsigned i;
+ union asf_object_u *p_child;
+ char *psz_name;
+
+@@ -1431,13 +1430,17 @@ static void ASF_ObjectDumpDebug( vlc_object_t *p_obj,
+ }
+ psz_name = ASF_ObjectDumpDebugInfo[i].psz_name;
+
++ char str[512];
++ if( i_level * 5 + 1 >= sizeof(str) )
++ return;
++
+ memset( str, ' ', sizeof( str ) );
+ for( i = 1; i < i_level; i++ )
+ {
+ str[i * 5] = '|';
+ }
+- snprintf( str + 5*i_level, 1024,
+- "+ '%s' GUID "GUID_FMT" size:"I64Fu"pos:"I64Fu,
++ snprintf( &str[5*i_level], sizeof(str) - 5*i_level,
++ "+ '%s' GUID "GUID_FMT" size:"I64Fu"pos:%"I64Fu,
+ psz_name,
+ GUID_PRINT( p_node->i_object_id ),
+ p_node->i_object_size, p_node->i_object_pos );
+diff --git a/modules/demux/avi/libavi.c b/modules/demux/avi/libavi.c
+index 6133741..14f495d 100644
+--- a/modules/demux/avi/libavi.c
++++ b/modules/demux/avi/libavi.c
+@@ -785,12 +785,15 @@ void _AVI_ChunkFree( stream_t *s,
+ }
+
+ static void AVI_ChunkDumpDebug_level( vlc_object_t *p_obj,
+- avi_chunk_t *p_chk, int i_level )
++ avi_chunk_t *p_chk, unsigned i_level )
+ {
+- char str[1024];
+- int i;
++ unsigned i;
+ avi_chunk_t *p_child;
+
++ char str[512];
++ if( i_level * 5 + 1 >= sizeof(str) )
++ return;
++
+ memset( str, ' ', sizeof( str ) );
+ for( i = 1; i < i_level; i++ )
+ {
+@@ -799,8 +802,8 @@ static void AVI_ChunkDumpDebug_level( vlc_object_t *p_obj,
+ if( p_chk->common.i_chunk_fourcc == AVIFOURCC_RIFF||
+ p_chk->common.i_chunk_fourcc == AVIFOURCC_LIST )
+ {
+- sprintf( str + i_level * 5,
+- "%c %4.4s-%4.4s size:"I64Fu" pos:"I64Fu,
++ snprintf( &str[i_level * 5], sizeof(str) - 5*i_level,
++ "%c %4.4s-%4.4s size:"I64Fu" pos:"I64Fu,
+ i_level ? '+' : '*',
+ (char*)&p_chk->common.i_chunk_fourcc,
+ (char*)&p_chk->list.i_type,
+@@ -809,8 +812,8 @@ static void AVI_ChunkDumpDebug_level( vlc_object_t *p_obj,
+ }
+ else
+ {
+- sprintf( str + i_level * 5,
+- "+ %4.4s size:"I64Fu" pos:"I64Fu,
++ snprintf( &str[i_level * 5], sizeof(str) - 5*i_level,
++ "+ %4.4s size:%"I64Fu" pos:%"I64Fu,
+ (char*)&p_chk->common.i_chunk_fourcc,
+ p_chk->common.i_chunk_size,
+ p_chk->common.i_chunk_pos );
+diff --git a/modules/demux/mp4/libmp4.c b/modules/demux/mp4/libmp4.c
+index 61ca9f3..f32e8df 100644
+--- a/modules/demux/mp4/libmp4.c
++++ b/modules/demux/mp4/libmp4.c
+@@ -2608,16 +2608,21 @@ static void __MP4_BoxDumpStructure( stream_t *s,
+ }
+ else
+ {
+- char str[512];
+ unsigned int i;
+- memset( str, (uint8_t)' ', 512 );
++
++ char str[512];
++ if( i_level * 5 + 1 >= sizeof(str) )
++ return;
++
++ memset( str, ' ', sizeof(str) );
+ for( i = 0; i < i_level; i++ )
+ {
+ str[i*5] = '|';
+ }
+- sprintf( str + i_level * 5, "+ %4.4s size %d",
+- (char*)&p_box->i_type,
+- (uint32_t)p_box->i_size );
++
++ snprintf( &str[i_level * 5], sizeof(str) - 5*i_level,
++ "+ %4.4s size %d",
++ (char*)&p_box->i_type+1, (uint32_t)p_box->i_size );
+
+ msg_Dbg( s, "%s", str );
+ }
--
VLC media player packaging
More information about the pkg-multimedia-commits
mailing list