[vlc-devel] [PATCH 01/17] video_output: avoid potential double release of displayed.current

Alexandre Janniaux ajanni at videolabs.io
Fri Nov 20 17:01:26 CET 2020


Hi,

I'm not sure how it's protecting from double free, it only
seems to protect against NULL dereference.

Regards,
--
Alexandre Janniaux
Videolabs

On Fri, Nov 20, 2020 at 03:44:51PM +0100, Steve Lhomme wrote:
> ThreadDisplayPreparePicture() can call ThreadChangeFilters() which will reset
> displayed.current so we need to ensure we don't release it again after a call
> to ThreadDisplayPreparePicture().
> ---
>  src/video_output/video_output.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c
> index 57ee54e6e8b..cea13d44c4a 100644
> --- a/src/video_output/video_output.c
> +++ b/src/video_output/video_output.c
> @@ -1493,7 +1493,8 @@ static int ThreadDisplayPicture(vout_thread_sys_t *vout, vlc_tick_t *deadline)
>                  ThreadDisplayPreparePicture(vout, false, true, &paused);
>          }
>
> -        picture_Release(sys->displayed.current);
> +        if (likely(sys->displayed.current != NULL))
> +            picture_Release(sys->displayed.current);
>          sys->displayed.current = sys->displayed.next;
>          sys->displayed.next    = NULL;
>
> @@ -1549,7 +1550,8 @@ static int ThreadDisplayPicture(vout_thread_sys_t *vout, vlc_tick_t *deadline)
>                      dropped_current_frame = true;
>                      render_now = false;
>
> -                    picture_Release(sys->displayed.current);
> +                    if (likely(sys->displayed.current != NULL))
> +                        picture_Release(sys->displayed.current);
>                      sys->displayed.current = sys->displayed.next;
>                      sys->displayed.next    = NULL;
>                  }
> --
> 2.26.2
>
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel


More information about the vlc-devel mailing list