[vlc-commits] es_out: check return from es_format_Copy

Thomas Guillem git at videolan.org
Mon Sep 3 17:05:55 CEST 2018


vlc | branch: master | Thomas Guillem <thomas at gllm.fr> | Mon Sep  3 15:31:50 2018 +0200| [9238af69e6280307c9aa51627589fb88606294cf] | committer: Thomas Guillem

es_out: check return from es_format_Copy

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

 src/input/es_out.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/input/es_out.c b/src/input/es_out.c
index 69acd09809..dadea39cb1 100644
--- a/src/input/es_out.c
+++ b/src/input/es_out.c
@@ -1525,10 +1525,21 @@ static es_out_id_t *EsOutAddSlaveLocked( es_out_t *out, const es_format_t *fmt,
     if( !es )
         return NULL;
 
+    if( es_format_Copy( &es->fmt, fmt ) != VLC_SUCCESS )
+    {
+        free( es );
+        return NULL;
+    }
+    if( es->fmt.i_id < 0 )
+        es->fmt.i_id = p_sys->i_id;
+    if( !es->fmt.i_original_fourcc )
+        es->fmt.i_original_fourcc = es->fmt.i_codec;
+
     /* Search the program */
     p_pgrm = EsOutProgramFind( out, fmt->i_group );
     if( !p_pgrm )
     {
+        es_format_Clean( &es->fmt );
         free( es );
         return NULL;
     }
@@ -1538,11 +1549,6 @@ static es_out_id_t *EsOutAddSlaveLocked( es_out_t *out, const es_format_t *fmt,
 
     /* Set up ES */
     es->p_pgrm = p_pgrm;
-    es_format_Copy( &es->fmt, fmt );
-    if( es->fmt.i_id < 0 )
-        es->fmt.i_id = p_sys->i_id;
-    if( !es->fmt.i_original_fourcc )
-        es->fmt.i_original_fourcc = es->fmt.i_codec;
 
     es->i_meta_id = p_sys->i_id++; /* always incremented */
     es->b_scrambled = false;



More information about the vlc-commits mailing list