[vlc-devel] commit: Fix potential segfault and move code (CID 178) ( Rémi Duraffort )

git version control git at videolan.org
Fri Oct 10 23:37:12 CEST 2008


vlc | branch: master | Rémi Duraffort <ivoire at videolan.org> | Fri Oct 10 23:36:12 2008 +0200| [6357ef21dad440a183e54e942828cd18d8505b19] | committer: Rémi Duraffort 

Fix potential segfault and move code (CID 178)

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=6357ef21dad440a183e54e942828cd18d8505b19
---

 modules/control/http/util.c |  130 +++++++++++++++++++------------------------
 1 files changed, 58 insertions(+), 72 deletions(-)

diff --git a/modules/control/http/util.c b/modules/control/http/util.c
index e04bdfc..869b88a 100644
--- a/modules/control/http/util.c
+++ b/modules/control/http/util.c
@@ -345,95 +345,81 @@ void PlaylistListNode( intf_thread_t *p_intf, playlist_t *p_pl,
                            playlist_item_t *p_node, char *name, mvar_t *s,
                            int i_depth )
 {
-    if( p_node != NULL )
-    {
-        if( p_node->i_children == -1 )
-        {
-            char value[512];
-            char *psz;
-            mvar_t *itm = mvar_New( name, "set" );
-            playlist_item_t * p_item = playlist_CurrentPlayingItem(p_pl);
-            if( p_item && p_node &&
-                p_item->p_input && p_node->p_input &&
-                p_item->p_input->i_id == p_node->p_input->i_id )
-            {
-                mvar_AppendNewVar( itm, "current", "1" );
-            }
-            else
-            {
-                mvar_AppendNewVar( itm, "current", "0" );
-            }
+    if( !p_node || !p_node->p_input )
+        return;
 
-            sprintf( value, "%d", p_node->i_id );
-            mvar_AppendNewVar( itm, "index", value );
-
-            psz = input_item_GetName( p_node->p_input );
-            mvar_AppendNewVar( itm, "name", psz );
-            free( psz );
+    if( p_node->i_children == -1 )
+    {
+        char value[512];
+        char *psz;
+        mvar_t *itm = mvar_New( name, "set" );
+        playlist_item_t * p_item = playlist_CurrentPlayingItem( p_pl );
+        if( !p_item || !p_item->p_input )
+            return;
+        if( p_item->p_input->i_id == p_node->p_input->i_id )
+            mvar_AppendNewVar( itm, "current", "1" );
+        else
+            mvar_AppendNewVar( itm, "current", "0" );
 
-            psz = input_item_GetURI( p_node->p_input );
-            mvar_AppendNewVar( itm, "uri", psz );
-            free( psz );
+        sprintf( value, "%d", p_node->i_id );
+        mvar_AppendNewVar( itm, "index", value );
 
-            sprintf( value, "Item");
-            mvar_AppendNewVar( itm, "type", value );
+        psz = input_item_GetName( p_node->p_input );
+        mvar_AppendNewVar( itm, "name", psz );
+        free( psz );
 
-            sprintf( value, "%d", i_depth );
-            mvar_AppendNewVar( itm, "depth", value );
+        psz = input_item_GetURI( p_node->p_input );
+        mvar_AppendNewVar( itm, "uri", psz );
+        free( psz );
 
-            if( p_node->i_flags & PLAYLIST_RO_FLAG )
-            {
-                mvar_AppendNewVar( itm, "ro", "ro" );
-            }
-            else
-            {
-                mvar_AppendNewVar( itm, "ro", "rw" );
-            }
+        sprintf( value, "Item");
+        mvar_AppendNewVar( itm, "type", value );
 
-            sprintf( value, "%ld",
-                    (long) input_item_GetDuration( p_node->p_input ) );
-            mvar_AppendNewVar( itm, "duration", value );
+        sprintf( value, "%d", i_depth );
+        mvar_AppendNewVar( itm, "depth", value );
 
-            mvar_AppendVar( s, itm );
-        }
+        if( p_node->i_flags & PLAYLIST_RO_FLAG )
+            mvar_AppendNewVar( itm, "ro", "ro" );
         else
-        {
-            char value[512];
-            int i_child;
-            mvar_t *itm = mvar_New( name, "set" );
+            mvar_AppendNewVar( itm, "ro", "rw" );
 
-            mvar_AppendNewVar( itm, "name", p_node->p_input->psz_name );
-            mvar_AppendNewVar( itm, "uri", p_node->p_input->psz_name );
+        sprintf( value, "%ld",
+                 (long) input_item_GetDuration( p_node->p_input ) );
+        mvar_AppendNewVar( itm, "duration", value );
 
-            sprintf( value, "Node" );
-            mvar_AppendNewVar( itm, "type", value );
+        mvar_AppendVar( s, itm );
+    }
+    else
+    {
+        char value[512];
+        int i_child;
+        mvar_t *itm = mvar_New( name, "set" );
 
-            sprintf( value, "%d", p_node->i_id );
-            mvar_AppendNewVar( itm, "index", value );
+        mvar_AppendNewVar( itm, "name", p_node->p_input->psz_name );
+        mvar_AppendNewVar( itm, "uri", p_node->p_input->psz_name );
 
-            sprintf( value, "%d", p_node->i_children);
-            mvar_AppendNewVar( itm, "i_children", value );
+        sprintf( value, "Node" );
+        mvar_AppendNewVar( itm, "type", value );
 
-            sprintf( value, "%d", i_depth );
-            mvar_AppendNewVar( itm, "depth", value );
+        sprintf( value, "%d", p_node->i_id );
+        mvar_AppendNewVar( itm, "index", value );
 
-            if( p_node->i_flags & PLAYLIST_RO_FLAG )
-            {
-                mvar_AppendNewVar( itm, "ro", "ro" );
-            }
-            else
-            {
-                mvar_AppendNewVar( itm, "ro", "rw" );
-            }
+        sprintf( value, "%d", p_node->i_children);
+        mvar_AppendNewVar( itm, "i_children", value );
 
-            mvar_AppendVar( s, itm );
+        sprintf( value, "%d", i_depth );
+        mvar_AppendNewVar( itm, "depth", value );
 
-            for (i_child = 0 ; i_child < p_node->i_children ; i_child++)
-                PlaylistListNode( p_intf, p_pl,
-                                      p_node->pp_children[i_child],
-                                      name, s, i_depth + 1);
+        if( p_node->i_flags & PLAYLIST_RO_FLAG )
+            mvar_AppendNewVar( itm, "ro", "ro" );
+        else
+            mvar_AppendNewVar( itm, "ro", "rw" );
 
-        }
+        mvar_AppendVar( s, itm );
+
+        for( i_child = 0 ; i_child < p_node->i_children ; i_child++ )
+             PlaylistListNode( p_intf, p_pl, p_node->pp_children[i_child],
+                               name, s, i_depth + 1);
     }
 }
 




More information about the vlc-devel mailing list