vlc | branch: master | Francois Cartegnie <fcvlc...@free.fr> | Wed Apr 6 14:45:51 2016 +0200| [f67156940f7809ebfd08edb20f16e2ebdc60462d] | committer: Francois Cartegnie
access: dvb: scan: do checked alloc/reallocs > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f67156940f7809ebfd08edb20f16e2ebdc60462d --- modules/access/dvb/scan.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/modules/access/dvb/scan.c b/modules/access/dvb/scan.c index e436f59..5a1ca1e 100644 --- a/modules/access/dvb/scan.c +++ b/modules/access/dvb/scan.c @@ -279,6 +279,13 @@ static int ScanDvbSNextFast( scan_t *p_scan, scan_configuration_t *p_cfg, double if( f ) { scan_dvbs_transponder_t *p_transponders = malloc( sizeof( scan_dvbs_transponder_t ) ); + if( !p_transponders ) + { + fclose( f ); + free( psz_path ); + return VLC_ENOMEM; + } + char type; char psz_fec[3]; @@ -306,7 +313,11 @@ static int ScanDvbSNextFast( scan_t *p_scan, scan_configuration_t *p_cfg, double p_scan->i_transponders++; - p_transponders = xrealloc(p_transponders, ( p_scan->i_transponders + 1 ) * sizeof( scan_dvbs_transponder_t ) ); + scan_dvbs_transponder_t *p_realloc = realloc( p_transponders, ( p_scan->i_transponders + 1 ) * sizeof(*p_realloc) ); + if( p_realloc ) + p_transponders = p_realloc; + else + res = EOF; } while (res != EOF); msg_Dbg( p_scan->p_obj, "parsed %d transponders from config", p_scan->i_transponders); _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits