]> git.sesse.net Git - vlc/commitdiff
dvb_scan: fix memleak.
authorRémi Duraffort <ivoire@videolan.org>
Fri, 13 Aug 2010 07:47:00 +0000 (09:47 +0200)
committerRémi Duraffort <ivoire@videolan.org>
Fri, 13 Aug 2010 13:07:37 +0000 (15:07 +0200)
modules/access/dvb/scan.c

index 626dbf2823e840b35f80bc1efde9a4820f6d77fd..92655cdc719d6b15be8031d590f51f85e4acb83a 100644 (file)
@@ -165,8 +165,6 @@ static int ScanDvbSNextFast( scan_t *p_scan, scan_configuration_t *p_cfg, double
     /* if there are no transponders in mem, laod from config file */
     if( !*pi_count )
     {
-        scan_dvbs_transponder_t *p_transponders = malloc( sizeof( scan_dvbs_transponder_t ) );
-
         DIR *p_dir;
 
         char *psz_dir = NULL;
@@ -223,6 +221,7 @@ static int ScanDvbSNextFast( scan_t *p_scan, scan_configuration_t *p_cfg, double
         /* parse file */
         if( f )
         {
+            scan_dvbs_transponder_t *p_transponders = malloc( sizeof( scan_dvbs_transponder_t ) );
             char type;
             char psz_fec[3];
 
@@ -256,6 +255,7 @@ static int ScanDvbSNextFast( scan_t *p_scan, scan_configuration_t *p_cfg, double
             msg_Dbg( p_scan->p_obj, "parsed %d transponders from config", *pi_count);
 
             fclose( f );
+            p_scan->parameter.sat_info.p_transponders = p_transponders;
         }
         else
         {
@@ -266,8 +266,6 @@ static int ScanDvbSNextFast( scan_t *p_scan, scan_configuration_t *p_cfg, double
         }
         free( p_scan->parameter.sat_info.psz_name );
         free( p_scan->parameter.sat_info.psz_path );
-
-        p_scan->parameter.sat_info.p_transponders = p_transponders;
     }
 
     if( p_scan->i_index < *pi_count )