[vlc-devel] [PATCH 3/6] demux: adaptive: fix cancellation during refresh playlist

Hugo Beauzée-Luyssen hugo at beauzee.fr
Wed Sep 20 11:10:37 CEST 2017


On Wed, Sep 20, 2017, at 05:49 AM, Zhao Zhili wrote:
> 
> This patch fixed a crash due to assert failure since mutex is not
> unlocked before vlc_mutex_destroy().
> ---
>   modules/demux/adaptive/PlaylistManager.cpp | 2 ++
>   1 file changed, 2 insertions(+)
> 
> diff --git a/modules/demux/adaptive/PlaylistManager.cpp 
> b/modules/demux/adaptive/PlaylistManager.cpp
> index 3ee5014..706ece0 100644
> --- a/modules/demux/adaptive/PlaylistManager.cpp
> +++ b/modules/demux/adaptive/PlaylistManager.cpp
> @@ -633,10 +633,12 @@ void PlaylistManager::Run()
> 
>           if(needsUpdate())
>           {
> +            int canc = vlc_savecancel();

This implies that the below functions are cancellation points, and
therefor a more correct fix (in my opinion) would be to move the call
the vlc_cleanup_pop right before the mutex gets unlocked, instead of
disabling cancellation.

>               if(updatePlaylist())
>                   scheduleNextUpdate();
>               else
>                   failedupdates++;
> +            vlc_restorecancel(canc);
>           }
> 
>           vlc_mutex_lock(&demux.lock);
> -- 
> 2.7.4
> 
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
> Email had 1 attachment:
> + 0003-demux-adaptive-fix-cancellation-during-refresh-playl.patch
>   1k (text/x-patch)


-- 
  Hugo Beauzée-Luyssen
  hugo at beauzee.fr


More information about the vlc-devel mailing list