vlc | branch: master | Francois Cartegnie <[email protected]> | Mon Nov 21 18:52:58 2016 +0100| [755578c8c50db8e0bacf59ad2bd7f8972b92178a] | committer: Francois Cartegnie
codec: gstreamer: fix unsafe copy of video_format_t > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=755578c8c50db8e0bacf59ad2bd7f8972b92178a --- modules/codec/gstreamer/gstvlcpictureplaneallocator.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/modules/codec/gstreamer/gstvlcpictureplaneallocator.c b/modules/codec/gstreamer/gstvlcpictureplaneallocator.c index 601c3bd..8b03daf 100644 --- a/modules/codec/gstreamer/gstvlcpictureplaneallocator.c +++ b/modules/codec/gstreamer/gstvlcpictureplaneallocator.c @@ -327,18 +327,24 @@ bool gst_vlc_picture_plane_allocator_query_format( picture_t *p_pic_info = &p_allocator->pic_info; /* Back up the original format; as this is just a query */ - memcpy( &v_fmt, &p_dec->fmt_out.video, sizeof( video_format_t )); + v_fmt = p_dec->fmt_out.video; + video_format_Init( &p_dec->fmt_out.video, 0 ); - if( !gst_vlc_video_info_from_vout( p_info, p_align, p_caps, p_dec, + bool b_ret = + gst_vlc_video_info_from_vout( p_info, p_align, p_caps, p_dec, p_pic_info )) + + video_format_Clean( &p_dec->fmt_out.video ); + + /* Restore the original format; as this was just a query */ + p_dec->fmt_out.video = v_fmt; + + if( !b_ret ) { msg_Err( p_allocator->p_dec, "failed to get the vout info" ); return false; } - /* Restore the original format; as this was just a query */ - memcpy( &p_dec->fmt_out.video, &v_fmt, sizeof( video_format_t )); - return true; } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
