comparison libmpdemux/demux_mf.c @ 35285:920b8d28379b

Fix memleak when reading a file fails.
author reimar
date Sat, 10 Nov 2012 12:07:28 +0000
parents b46668aabd5c
children 389d43c448b3
comparison
equal deleted inserted replaced
35284:b46668aabd5c 35285:920b8d28379b
59 59
60 if ( !( f=fopen( mf->names[mf->curr_frame],"rb" ) ) ) return 0; 60 if ( !( f=fopen( mf->names[mf->curr_frame],"rb" ) ) ) return 0;
61 { 61 {
62 sh_video_t * sh_video = demuxer->video->sh; 62 sh_video_t * sh_video = demuxer->video->sh;
63 demux_packet_t * dp = new_demux_packet( fs.st_size ); 63 demux_packet_t * dp = new_demux_packet( fs.st_size );
64 if ( !fread( dp->buffer,fs.st_size,1,f ) ) return 0; 64 if ( !fread( dp->buffer,fs.st_size,1,f ) ) {
65 fclose(f);
66 free_demux_packet(dp);
67 return 0;
68 }
65 dp->pts=mf->curr_frame / sh_video->fps; 69 dp->pts=mf->curr_frame / sh_video->fps;
66 dp->pos=mf->curr_frame; 70 dp->pos=mf->curr_frame;
67 dp->flags=1; 71 dp->flags=1;
68 // append packet to DS stream: 72 // append packet to DS stream:
69 ds_add_packet( demuxer->video,dp ); 73 ds_add_packet( demuxer->video,dp );