[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