[vlc-devel] [PATCH 04/25] image: use es_format_Copy() instead of plain structure copy

Steve Lhomme robux4 at videolabs.io
Mon Jul 10 16:52:08 CEST 2017


There's potentially double free when calling es_format_Clean() on the copied
structure.
---
 src/misc/image.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/misc/image.c b/src/misc/image.c
index c505b5bfcc..a9a4d4e605 100644
--- a/src/misc/image.c
+++ b/src/misc/image.c
@@ -771,10 +771,10 @@ static filter_t *CreateFilter( vlc_object_t *p_this, es_format_t *p_fmt_in,
     p_filter->owner.video.buffer_new =
         (picture_t *(*)(filter_t *))video_new_buffer;
 
-    p_filter->fmt_in = *p_fmt_in;
-    p_filter->fmt_out = *p_fmt_in;
+    es_format_Copy( &p_filter->fmt_in, p_fmt_in );
+    es_format_Copy( &p_filter->fmt_out, p_fmt_in );
+    video_format_Copy( &p_filter->fmt_out.video, p_fmt_out );
     p_filter->fmt_out.i_codec = p_fmt_out->i_chroma;
-    p_filter->fmt_out.video = *p_fmt_out;
     p_filter->p_module = module_need( p_filter, "video converter", NULL, false );
 
     if( !p_filter->p_module )
-- 
2.12.1



More information about the vlc-devel mailing list