]> git.sesse.net Git - vlc/commitdiff
Fix VLM double free
authorRémi Denis-Courmont <rdenis@simphalempin.com>
Fri, 5 Sep 2008 15:22:34 +0000 (18:22 +0300)
committerRémi Denis-Courmont <rdenis@simphalempin.com>
Fri, 5 Sep 2008 15:22:48 +0000 (18:22 +0300)
Pointed-out-by: Sébastien Escudier
src/control/vlm.c

index 5fe546825d670af049458395728ac823e02f64aa..8e0f5fa7f80036cc461b40f4bad7b40cc08ebb7c 100644 (file)
@@ -199,12 +199,10 @@ void libvlc_vlm_add_broadcast( libvlc_instance_t *p_instance, char *psz_name,
     for( n = 0; n < i_options; n++ )
         TAB_APPEND( m.i_option, m.ppsz_option, strdup(ppsz_options[n]) );
 
-    if( vlm_Control( p_vlm, VLM_ADD_MEDIA, &m, NULL ) )
-    {
-        vlm_media_Clean( &m );
-        libvlc_exception_raise( p_exception, "Media %s creation failed", psz_name );
-    }
+    n = vlm_Control( p_vlm, VLM_ADD_MEDIA, &m, NULL );
     vlm_media_Clean( &m );
+    if( n )
+        libvlc_exception_raise( p_exception, "Media %s creation failed", psz_name );
 #else
     libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." );
     return VLC_EGENERIC;
@@ -233,12 +231,10 @@ void libvlc_vlm_add_vod( libvlc_instance_t *p_instance, char *psz_name,
     for( n = 0; n < i_options; n++ )
         TAB_APPEND( m.i_option, m.ppsz_option, strdup(ppsz_options[n]) );
 
-    if( vlm_Control( p_vlm, VLM_ADD_MEDIA, &m, NULL ) )
-    {
-        vlm_media_Clean( &m );
-        libvlc_exception_raise( p_exception, "Media %s creation failed", psz_name );
-    }
+    n = vlm_Control( p_vlm, VLM_ADD_MEDIA, &m, NULL );
     vlm_media_Clean( &m );
+    if( n )
+        libvlc_exception_raise( p_exception, "Media %s creation failed", psz_name );
 #else
     libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." );
     return VLC_EGENERIC;