Commit 7e94e20b authored by Rémi Duraffort's avatar Rémi Duraffort

asx: fix many memory leaks (and cid #1109641)

parent 85f92c8f
...@@ -312,6 +312,8 @@ static int Demux( demux_t *p_demux ) ...@@ -312,6 +312,8 @@ static int Demux( demux_t *p_demux )
char *psz_entryref = NULL; char *psz_entryref = NULL;
xml_reader_t *p_xml_reader = NULL; xml_reader_t *p_xml_reader = NULL;
input_item_t *p_current_input = GetCurrentItem( p_demux );
input_item_node_t *p_subitems = NULL;
bool b_first_node = false; bool b_first_node = false;
int i_type; int i_type;
...@@ -324,8 +326,7 @@ static int Demux( demux_t *p_demux ) ...@@ -324,8 +326,7 @@ static int Demux( demux_t *p_demux )
goto error; goto error;
} }
input_item_t *p_current_input = GetCurrentItem( p_demux ); p_subitems = input_item_node_Create( p_current_input );
input_item_node_t *p_subitems = input_item_node_Create( p_current_input );
do do
{ {
...@@ -424,17 +425,22 @@ static int Demux( demux_t *p_demux ) ...@@ -424,17 +425,22 @@ static int Demux( demux_t *p_demux )
} }
while( i_type != XML_READER_ENDELEM || strncasecmp( psz_node, "ASX", 3 ) ); while( i_type != XML_READER_ENDELEM || strncasecmp( psz_node, "ASX", 3 ) );
input_item_node_PostAndDelete( p_subitems );
p_subitems = NULL;
error:
free( psz_base ); free( psz_base );
free( psz_title_asx ); free( psz_title_asx );
free( psz_entryref ); free( psz_entryref );
free( psz_txt ); free( psz_txt );
input_item_node_PostAndDelete( p_subitems );
vlc_gc_decref( p_current_input );
error:
if( p_xml_reader) if( p_xml_reader)
xml_ReaderDelete( p_xml_reader ); xml_ReaderDelete( p_xml_reader );
if( p_subitems )
input_item_node_Delete( p_subitems );
vlc_gc_decref( p_current_input );
return 0; return 0;
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment