[vlc-devel] [PATCH] input: Fix race condition on input item titles
Hugo Beauzée-Luyssen
hugo at beauzee.fr
Mon Aug 28 10:01:38 CEST 2017
On Sun, Aug 27, 2017, at 10:39 AM, Rémi Denis-Courmont wrote:
> Le sunnuntaina 27. elokuuta 2017, 11.02.50 EEST Rémi Denis-Courmont a
> écrit :
> > Le perjantaina 25. elokuuta 2017, 15.42.59 EEST Hugo Beauzée-Luyssen a écrit
> :
> > > Fix #18727
> > > ---
> > >
> > > src/input/input.c | 6 +++++-
> > > 1 file changed, 5 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/src/input/input.c b/src/input/input.c
> > > index ae5fe03f81..af416b4b54 100644
> > > --- a/src/input/input.c
> > > +++ b/src/input/input.c
> > > @@ -2269,7 +2269,10 @@ static void UpdateGenericFromDemux( input_thread_t
> > > *p_input )
> > >
> > > static void UpdateTitleListfromDemux( input_thread_t *p_input )
> > > {
> > >
> > > - input_source_t *in = input_priv(p_input)->master;
> > > + input_thread_private_t *priv = input_priv(p_input);
> > > + input_source_t *in = priv->master;
> > > +
> > > + vlc_mutex_lock( &priv->p_item->lock );
> > >
> > > /* Delete the preexisting titles */
> > > if( in->i_title > 0 )
> > >
> > > @@ -2288,6 +2291,7 @@ static void UpdateTitleListfromDemux( input_thread_t
> > > *p_input ) else
> > >
> > > in->b_title_demux = true;
> > >
> > > + vlc_mutex_unlock( &priv->p_item->lock );
> > >
> > > InitTitle( p_input );
> > >
> > > }
> >
> > I don´t see where the item is used, so then there is no point taking its
> > lock.
>
As pointed out by #18727, it's being used by (at least)
modules/gui/qt/adapters/seekpoints.cpp:43
> There is in fact a not very good design decision to use the master input
> item
> lock to protect some properties of the input thread. But that does not
> seem to
> be the case for ->titles.
>
> Also, the lock cannot be taken while calling the demuxer: The demuxer is
> allowed to acquire that lock - potentially leading to undefined recursive
> locking or lock inversion.
Oh, my bad then. I assumed it wouldn't.
I'll do it another way then.
>
> --
> 雷米‧德尼-库尔蒙
> https://www.remlab.net/
>
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
--
Hugo Beauzée-Luyssen
hugo at beauzee.fr
More information about the vlc-devel
mailing list