]> git.sesse.net Git - vlc/blobdiff - modules/services_discovery/sap.c
Fix segfault in sap service discovery.
[vlc] / modules / services_discovery / sap.c
index 8977fc2a697023d945516f6551c5ac0e7c736f1c..d0d1144e99bf74ba613769876a6b7fa40e6cf20f 100644 (file)
@@ -547,10 +547,8 @@ static void Run( services_discovery_t *p_sd )
 
     psz_addr = var_CreateGetString( p_sd, "sap-addr" );
     if( psz_addr && *psz_addr )
-    {
         InitSocket( p_sd, psz_addr, SAP_PORT );
-        free( psz_addr );
-    }
+    free( psz_addr );
 
     if( p_sd->p_sys->i_fd == 0 )
     {
@@ -671,6 +669,8 @@ static int Demux( demux_t *p_demux )
         return VLC_EGENERIC;
     }
 
+    /* This item hasn't been yield by input_GetItem
+     * don't release it */
     p_parent_input = input_GetItem( p_input );
 
     input_item_SetURI( p_parent_input, p_sdp->psz_uri );
@@ -681,7 +681,6 @@ static int Demux( demux_t *p_demux )
     p_parent_input->i_type = ITEM_TYPE_NET;
 
     vlc_mutex_unlock( &p_parent_input->lock );
-    vlc_object_release( p_input );
     return VLC_SUCCESS;
 }