[vlc-devel] commit: Fix CID 103 resource leak and added checks for memory return values . (Jean-Paul Saman )

git version control git at videolan.org
Sat May 31 17:19:53 CEST 2008


vlc | branch: 0.8.6-bugfix | Jean-Paul Saman <jpsaman at videolan.org> | Sat May 31 17:21:10 2008 +0200| [682e04fb26fec70adbf326f7798864d88b4684bc]

Fix CID 103 resource leak and added checks for memory return values.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=682e04fb26fec70adbf326f7798864d88b4684bc
---

 src/input/es_out.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/src/input/es_out.c b/src/input/es_out.c
index 1aec903..b3ad712 100644
--- a/src/input/es_out.c
+++ b/src/input/es_out.c
@@ -143,6 +143,13 @@ es_out_t *input_EsOutNew( input_thread_t *p_input )
     vlc_value_t  val;
     int i;
 
+    if( !out ) return NULL;
+    if( !p_sys )
+    {
+        free( out );
+        return NULL;
+    }
+
     out->pf_add     = EsOutAdd;
     out->pf_send    = EsOutSend;
     out->pf_del     = EsOutDel;
@@ -485,6 +492,7 @@ static es_out_pgrm_t *EsOutProgramAdd( es_out_t *out, int i_group )
     vlc_value_t       val;
 
     es_out_pgrm_t *p_pgrm = malloc( sizeof( es_out_pgrm_t ) );
+    if( !p_pgrm ) return NULL;
 
     /* Init */
     p_pgrm->i_id = i_group;
@@ -571,6 +579,8 @@ static void EsOutProgramMeta( es_out_t *out, int i_group, vlc_meta_t *p_meta )
     char              *psz_provider = NULL;
     int i;
 
+    if( !psz_cat ) return;
+
     msg_Dbg( p_input, "EsOutProgramMeta: number=%d", i_group );
     sprintf( psz_cat, "%s %d", _("Program"), i_group );
 
@@ -657,9 +667,12 @@ static es_out_id_t *EsOutAdd( es_out_t *out, es_format_t *fmt )
     es_out_pgrm_t     *p_pgrm = NULL;
     int i;
 
+    if( !es ) return NULL;
+
     if( fmt->i_group < 0 )
     {
         msg_Err( p_input, "invalid group number" );
+        free( es );
         return NULL;
     }
 




More information about the vlc-devel mailing list