libvlc: delete preparser before interfaces

This fixes a use-after-free when the art fetcher was triggering a callback
registered by the playlist (that was destroyed).
This commit is contained in:
Thomas Guillem 2016-06-02 10:53:06 +02:00
parent e08970c1ad
commit 9e9b227443
1 changed files with 3 additions and 3 deletions

View File

@ -508,6 +508,9 @@ void libvlc_InternalCleanup( libvlc_int_t *p_libvlc )
{
libvlc_priv_t *priv = libvlc_priv (p_libvlc);
if (priv->parser != NULL)
playlist_preparser_Delete(priv->parser);
/* Ask the interfaces to stop and destroy them */
msg_Dbg( p_libvlc, "removing all interfaces" );
libvlc_Quit( p_libvlc );
@ -536,9 +539,6 @@ void libvlc_InternalCleanup( libvlc_int_t *p_libvlc )
}
#endif
if (priv->parser != NULL)
playlist_preparser_Delete(priv->parser);
vlc_DeinitActions( p_libvlc, priv->actions );
/* Save the configuration */