]> git.sesse.net Git - vlc/blobdiff - modules/stream_out/description.c
Fix for [oCERT-2008-004] multiple speex implementations insufficient boundary checks...
[vlc] / modules / stream_out / description.c
index 07b1383a31f4e128a5dd1396fdd351ca867c9b03..85241e5154dbf58d5976f47a4d832aa2a3674a23 100644 (file)
 /*****************************************************************************
  * Preamble
  *****************************************************************************/
-#include <stdlib.h>
-#include <string.h>
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
 
 #include <vlc/vlc.h>
 #include <vlc_input.h>
@@ -95,8 +97,8 @@ static void Close( vlc_object_t *p_this )
     sout_stream_sys_t *p_sys = p_stream->p_sys;
 
     /* It can happen only if buggy */
-    if( p_sys->p_input )
-        vlc_object_release( p_sys->p_input );
+    assert( !p_sys->p_input );
+
     free( p_sys );
 }
 
@@ -111,7 +113,7 @@ static sout_stream_id_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt )
         p_sys->p_input = vlc_object_find( p_stream, VLC_OBJECT_INPUT, FIND_PARENT );
     if( !p_sys->p_input )
         return NULL;
-    
     p_item = input_GetItem(p_sys->p_input);
 
     p_fmt_copy = malloc(sizeof(es_format_t));
@@ -148,12 +150,13 @@ static int Del( sout_stream_t *p_stream, sout_stream_id_t *id )
 static int Send( sout_stream_t *p_stream, sout_stream_id_t *id,
                  block_t *p_buffer )
 {
+    VLC_UNUSED(id);
     sout_stream_sys_t *p_sys = p_stream->p_sys;
 
     block_ChainRelease( p_buffer );
 
     if( p_sys->p_input && p_sys->i_stream_start + 1500000 < mdate() )
-        p_sys->p_input->b_eof = VLC_TRUE;
+        p_sys->p_input->b_eof = true;
 
     return VLC_SUCCESS;
 }