]> git.sesse.net Git - vlc/commitdiff
m3u: Fix 3 leaks.
authorPierre d'Herbemont <pdherbemont@free.fr>
Thu, 28 Jan 2010 19:21:03 +0000 (20:21 +0100)
committerPierre d'Herbemont <pdherbemont@free.fr>
Fri, 29 Jan 2010 10:49:24 +0000 (11:49 +0100)
modules/demux/playlist/m3u.c

index cef756e0ed62d668d71b1adbb3b9330228f5a68b..e4168ad8125bc0ad63b802415d582ce1e9a4f76b 100644 (file)
@@ -170,6 +170,8 @@ static int Demux( demux_t *p_demux )
             {
                 /* Extended info */
                 psz_parse += sizeof("EXTINF:") - 1;
+                free(psz_name);
+                free(psz_artist);
                 parseEXTINF( psz_parse, &psz_artist, &psz_name, &i_parsed_duration );
                 if( i_parsed_duration >= 0 )
                     i_duration = i_parsed_duration * INT64_C(1000000);
@@ -208,7 +210,11 @@ static int Demux( demux_t *p_demux )
             psz_mrl = ProcessMRL( psz_parse, p_demux->p_sys->psz_prefix );
 
             b_cleanup = true;
-            if( !psz_mrl ) goto error;
+            if( !psz_mrl )
+            {
+                LocaleFree( psz_parse );
+                goto error;
+            }
 
             p_input = input_item_NewExt( p_demux, psz_mrl, psz_name,
                                         i_options, ppsz_options, 0, i_duration );