Fix a race condition between rtsp and httpd
authorSébastien Escudier <sebastien-devel@celeos.eu>
Thu, 5 Feb 2009 13:08:22 +0000 (14:08 +0100)
committerRémi Denis-Courmont <rdenis@simphalempin.com>
Mon, 9 Feb 2009 16:21:51 +0000 (18:21 +0200)
This can happen when a rtsp client teardown : RtspCallback is called.
But at the same time, if the media is deleted, (MediaDel), RtspClientDel can be called twice on the same p_media/p_rtsp

Signed-off-by: Rémi Denis-Courmont <rdenis@simphalempin.com>
modules/misc/rtsp.c

index 18213d4..0dd3e93 100644 (file)
@@ -472,11 +472,12 @@ static void MediaDel( vod_t *p_vod, vod_media_t *p_media )
     TAB_REMOVE( p_sys->i_media, p_sys->media, p_media );
     vlc_mutex_unlock( &p_sys->lock_media );
 
+    httpd_UrlDelete( p_media->p_rtsp_url );
+
     while( p_media->i_rtsp > 0 )
         RtspClientDel( p_media, p_media->rtsp[0] );
     TAB_CLEAN( p_media->i_rtsp, p_media->rtsp );
 
-    httpd_UrlDelete( p_media->p_rtsp_url );
     free( p_media->psz_rtsp_path );
     free( p_media->psz_rtsp_control_v6 );
     free( p_media->psz_rtsp_control_v4 );