[vlc-devel] fix #14586 (6f3e18d5) leads to crash on Android

Andrey Gursky andrey.gursky at e-mail.ua
Sun May 29 23:41:49 CEST 2016


On Sun, 29 May 2016 20:48:34 +0200
Andrey Gursky <andrey.gursky at e-mail.ua> wrote:

> On Sun, 29 May 2016 21:43:38 +0300
> Rémi Denis-Courmont <remi at remlab.net> wrote:
> 
> > On Sunday 29 May 2016 20:31:37 Andrey Gursky wrote:
> > > considering src/android/thread.c:
> > > 
> > > static __thread struct vlc_thread *thread = NULL;
> > > 
> > > vlc_thread_t vlc_thread_self (void)
> > > {
> > >     return thread;
> > > }
> > > 
> > > void vlc_control_cancel(int cmd, ...)
> > > {
> > >     vlc_thread_t th = vlc_thread_self();
> > >     va_list ap;
> > > //...
> > > }
> > > 
> > > I don't see where this TLS variable "thread" is assigned before call to
> > > vlc_control_cancel().
> > 
> > TBH, that it´s not hard to find by looking for "thread =", and it has not 
> > changed in 3 years.
> 
> Yes, I did that, of course. From what I found, it doesn't get assigned.

> android: ignore cancellation of foreign threads
> +    if (th == NULL)
> +        return;
> +

Rémi, as you see it is indeed not assigned for "foreign threads". By
the way, is there any documentation for this?

And despite of the fact that I haven't yet published the stack trace
there has been a bug.

Regards,
Andrey


More information about the vlc-devel mailing list