From 37558f4a013787f3a197db1de20aa6f0427ab2b1 Mon Sep 17 00:00:00 2001 From: Sam Hocevar Date: Fri, 21 Mar 2008 22:50:25 +0100 Subject: [PATCH] Fix a potential corruption in release_input_thread(). If the media instance owns the input and libvlc_media_instance_release() is called immediately after libvlc_media_instance_stop(), there is a chance that we try to free the input resources before the thread is effectively terminated. To avoid this, we call input_DestroyThread() instead of vlc_object_release() at the end of release_input_thread() when the media instance owns the input thread. --- src/control/media_instance.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/control/media_instance.c b/src/control/media_instance.c index c3ade3bea4..afcdfc2f81 100644 --- a/src/control/media_instance.c +++ b/src/control/media_instance.c @@ -92,11 +92,12 @@ static void release_input_thread( libvlc_media_instance_t *p_mi ) /* We owned this one */ input_StopThread( p_input_thread ); + input_DestroyThread( p_input_thread ); var_Destroy( p_input_thread, "drawable" ); } - - vlc_object_release( p_input_thread ); + else + vlc_object_release( p_input_thread ); p_mi->p_input_thread = NULL; } -- 2.39.2